在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所引起的變化
自己生成的對象,自己所持有。
非自己生成的對象,自己也能持有。
自己持有的對象不再需要時釋放。
非自己持有的對象無法釋放。