// autorelease
// 示例1.
person *person = [[person alloc]init];
// release 功能立即減1
// autorelease 延遲減1 將物件放入池子中,返回乙個self
[person autorelease];
} // 代表池子將要銷毀,對池子中所有的物件進行『一次』release操作
//示例2. 自動釋放池可以隨意建立
// 不管這個物件是在池子中還是在池子外建立的,只要在池子中呼叫了autorelease 就會把物件放入到池子中,隨著池子的銷毀而執行一次release操作
person *person1 = [[person alloc]init];
@autoreleasepool
// 示例3.
person *person2 = [[person alloc]init];
[person2 autorelease];
@autoreleasepool
// 只有在自動釋放池內呼叫了autorelease方法,才能夠正確的將物件放入池子
// 示例4.
person *person4 = [[person alloc]init];
@autoreleasepool
}// 示例6.
person *person6 = [[person alloc]init];
@autoreleasepool
}autorelase在mrc中的用法等
// 建立chief
+ (id)chief
// 建立food
- (food *)chiefmakefood
記憶體管理 MRC
記憶體管理,涉及的操作 記憶體管理的管理範圍 只有oc物件才需要進行記憶體管理的本質原因 引用計數器 4位元組 引用計數器常見操作 dealloc 野指標 vs.空指標 記憶體管理原則 set方法的記憶體管理 void setsomething something something dealloc...
OC 記憶體洩露 自動釋放池
花絮 看到下面的 就想起這麼乙個調侃 乙個老程式設計師,功成名就,金盆洗手不在寫 後,決定練練書法。提筆思索良久後在紙上寫下 hello world 1 首先說下自動釋放池的底層實現 它是通過以 autoreleasepoolpage 為結點的雙向鍊錶來實現的。很類似棧的方式 對應push操作 底層...
自動釋放池
自動釋放池是什麼時候建立的?又是什麼時候銷毀的?原題 思考 1,有返回值的類方法建立出來的物件都是autorelease的。autorelease物件出了作用域後,就會被新增到自動釋放池中。如果largenumber非常大,有可能在乙個for中就把自動釋放池填滿,記憶體消耗非常大!2,解決方案 在f...