fuzzygoat
fuzzygoat

Reputation: 26223

Printing Instance ID to NSLog?

In the dealloc method for a class how would I print out the ID (or some other unique identifier) for the instance being deallocated?

- (void)dealloc {
    NSLog(@"_deallocing: ??");
    [super dealloc];
}

Is this possible? I am just trying to get a little more feedback in the console as an aid to learning.

many thanks -gary-

Upvotes: 15

Views: 20654

Answers (2)

dmkash
dmkash

Reputation: 1247

If you specifically want the memory address of the object (which I suppose could be considered an "identifier" if you don't have one implemented in your class), you can use this:

NSLog(@"deallocing %p", self);

This can be rather helpful if you have more than one instance of a particular class and are trying to determine which is getting dealloc'd when.

Upvotes: 54

iKenndac
iKenndac

Reputation: 18776

Try this:

- (void)dealloc {
    NSLog(@"_deallocing: %@", self);
    [super dealloc];
}

This will output a bit more info about the object to the console. Depending on the class, you'll either get a memory address and the class name or something more detailed. If you want to give something more detailed in your own classes, override this method and return whatever you'd like:

-(NSString *)description {
    return @"Something useful about this object";
}

Upvotes: 7

Related Questions