[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Lloyd Dupont
Subject: poseAsClass
Date: Tue, 11 Apr 2006 17:59:50 +1000

Does poseAsClass work?
I tred to poseAsClass: NSObject to override release, but that doens't seems to work.
I have a NSLOg in release, but it never write!.....

Below is my code:

static NSMutableDictionary * whoWasIt = nil;

@implementation DebugObject

+ (void) install
[self poseAsClass: [NSObject class]];
NSLog(@"DebugObject now posing as NSObject, watch out, NO OTHER OBJECT WILL EVER BE RELEASED!");
- (void) release
NSLog(@"DebugObject release: 1");
if([self retainCount] > 1)
 [super release];

NSLog(@"DebugObject release: 2");
if([self isKindOfClass: [NSValue class]])
 [super release];

NSString * oldClassName = [self className];

self->isa = [DeadObject class];
NSLog(@"new isa: %p", self->isa);

if( whoWasIt == nil )
 whoWasIt = [[NSMutableDictionary alloc] init];
[whoWasIt setObject: oldClassName forKey: [NSValue valueWithPointer: self]];


reply via email to

[Prev in Thread] Current Thread [Next in Thread]