I have been engrossed in Cocoa for a time now…and obviously there is the continued problem of memory management.
I was wondering, is there any way of showing how many times an object has been retained via an NSLog statement of some sort? For instance, I may have an NSArray and I want to check how many times it is retained. Is there some way of putting in a statement like NSLog([arrayName numAlloc]); or something similar?
I believe NSObject’s -(unsigned)retainCount is what you are looking for.
NSLog(@”Array has been retained %d times\n”, [arrayName retainCount]);
That will do what you want but be forewarned that this will not take autoreleasing into account.
I would also like to point out that calling -retainCount should only be used for debugging purposes. It can be useful for debugging, but you should never use it in real program code. (Almost: see WeakPointers.)