我不清楚如何使用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
。所以编译器不能调用dealloc
object 的函数tracker
,所以存在内存泄漏。
所以我明白了:我们应该同时打电话retain
,release
对吗?