我不清楚如何使用autorelease;
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
RetainTracker* tracker = [RetainTracker new];
[tracker retain];
[tracker retain];
[tracker autorelease];
[pool release];
上述代码中是否存在内存泄漏?
我知道autorelease只是放入tracker,NSAutoreleasePool而不修改tracker. 当我打电话[pool release]时,对象收到一条消息release,那么引用计数tracker是2。所以编译器不能调用deallocobject 的函数tracker,所以存在内存泄漏。
所以我明白了:我们应该同时打电话retain,release对吗?