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操作(通過操作對象的內存地址);