标签:
autorelease具体使用方法如下:
1)生成并持有NSAutoreleasePool对象;
2)调用已分配对象的autorelease实例方法;
3)废弃NSAutoreleasePool对象。
autorelease是怎样实现的呢?来插卡GNUstep的源代码。
[obj autorelease];
- (id)autorelease
{
[NSAutoreleasePool addObject:self];
}
autorelease实例方法的本质就是调用NSAutoreleasePool对象的addObject类方法。
NSAutoreleasePool类的实现,
+ (void)addObject:(id)anObj
{
NSAutoreleasePool *pool = 取得正在使用的NSAutoreleasePool对象;
if(poo != nil)
{
[pool addObject:anObj];
} else
{
NSLog(@"NSAutoreleasePool对象非存在状态下调用autorelease");
}
}
标签:
原文地址:http://www.cnblogs.com/fkunlam/p/4903952.html