我發現[object_name retain]
將對象引用計數增加1,[object_name release]
將對象引用計數減1。[pool drain]
對所引用的所有對象應用釋放。引用計數設置爲零時是否釋放內存?
現在我很困惑。當沒有引用它時,對象會發生什麼? release
和drain
只是減少引用計數,所以內存實際上釋放零引用計數還是我仍然有一個零引用計數的對象?
我還發現,如果在這裏
[pool drain]
//讓我的對象STR3引用計數零
NSLog(@"%li",[str3 length]);
//它的工作原理,對象可能尚未銷燬!
//此處爲其他代碼
但
[pool drain]
//此處爲其他代碼
NSLog(@"%li",[str3 length]);
//不工作,可現在是毀滅!
閱讀Apple's * [Cocoa Core Competencies](http://developer.apple.com/library/ios/documentation/general/conceptual/DevPedia-CocoaCore/MemoryManagement.html#//apple_ref/doc/uid/TP40008195 -CH27-SW1)*。這裏有很多重要的信息,例如:「當保留計數變爲零時,對象被解除分配(銷燬)。」 –
我明白了......系統自動調用dealloc方法來釋放內存空間計算零參考! ,請大家爲我們的觀點! – BaSha