天天看點

Object-C中記憶體引用計數

在Objective-C的對象中存有引用計數這一整數值。

在調用alloc或者retain方法後,引用計數值加1。

調用release後,引用計數值減1。

引用計數值為0時,調用dealloc方法廢棄。

在NSObject類的alloc類方法上設定斷點,追蹤程式的執行。以下列出了執行所調用的方法和函數。

+alloc

+allocWithZone:

   class_createInstance

   calloc

autorelease的具體使用方法如下:

1、生成并且持有NSAutoreleasePool對象。

2、調用已配置設定對象的autorelease執行個體方法。

3、廢棄NSAutoreleasePool對象。

NSAutoreleasePool  *pool =[[NSAutoreleasePool alloc] init];

id obj = [[NSObject alloc] init];

[obj autorelease];

[pool drain];

上述最後一句源代碼 [pool drain] 相當于  [obj release]

引用計數式記憶體管理的思考方式就是思考ARC所引起的變化

自己生成的對象,自己所持有。

非自己生成的對象,自己也能持有。

自己持有的對象不再需要時釋放。

非自己持有的對象無法釋放。

繼續閱讀