iOS开发进阶:自动释放池的实现原理分析

在MRC下如下代码:

NSObject *obj = [[NSObject alloc] init] autorelease];

通过xcrun命令可以转换成cpp源代码,在代码中包含__AtAutoreleasePool结构体如下:

//自动释放池结构体
struct __AtAutoreleasePool {
  __AtAutoreleasePool()  //构造函数:创建的时候调用
{atautoreleasepoolobj = objc_autoreleasePoolPush();}

  ~__AtAutoreleasePool() //析构函数:释放的时候调用
 {objc_autoreleasePoolPop(atautoreleasepoolobj);}

  void * atautoreleasepoolobj;
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章