OC_自动引用计数器_0x05

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");

  }

 

posted on 2015-10-23 11:31  FKunLam  阅读(153)  评论(0编辑  收藏  举报