iOS開發進階:自動釋放池的實現原理分析

在MRC下如下代碼:

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

通過xcrun命令可以轉換成cpp源代碼,在代碼中包含__AtAutoreleasePool結構體如下:

//自動釋放池結構體
struct __AtAutoreleasePool {
  __AtAutoreleasePool()  //構造函數:創建的時候調用
{atautoreleasepoolobj = objc_autoreleasePoolPush();}

  ~__AtAutoreleasePool() //析構函數:釋放的時候調用
 {objc_autoreleasePoolPop(atautoreleasepoolobj);}

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