1.autoreleasePool和autorelease

iOS內存管理原則(配對原則):只要出現了new,alloc,retain,就一定要對應一個release,autorelease。

MRC模式下的兩個關注點:

1、避免野指針:對象不再使用時,將它的指針變量賦值為nil。給nil發送任何消息都不會報錯;

避免方式:在方法內創建對象時先初始化為nil,Person *p = nil;

2、避免內存泄漏:利用release方法直接釋放,利用autorelease方法延遲釋放;

2.1、autorelease作用:對象在池中調用autorelease方法后,將對象地址存入池中,并返回self(對象的指針地址),對池內池外創建的對象都有效;

2.2、autorelease應用場景:自定義類工廠方法(類名開頭)時,用內部創建的對象調用此方法,再返回(系統提供的類名開頭方法返回的都是autorelease對象,所以不會發生也指針錯誤);

2.3、autoreleasepool作用:池子銷毀時,對自己內部對象進行一次release操作(通過操作對象的內存地址);

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容