物件存入到自動釋放池中,當這個池子被銷毀的時候,他都會對池子中的所有的物件進行一次release操作
1:怎麼把物件存到池子中
//自動釋放池,大括號代表池子的作用域,可以自己隨意建立
//只有在自動釋放池的作用域中呼叫物件的autorelease方法才能夠正確地將物件放入到池子中
@autoreleasepool//代表池子將要被銷毀,對池子中的所有的物件進行一次release操作
2:autorelease應用
》1:如果在方法中建立乙個物件,最好初始化為nil,防止出現野指標錯誤,如
-(food *)chiefmakefood
》2:給外界提供乙個快速獲得當前物件 的快捷方法,是類方法
+(chief *)chief
在 @autoreleasepool
nsstring *name = [nsstring stringwithformat:"%@",@"啦啦啦"];//都是autorelease
自動釋放池
自動釋放池是什麼時候建立的?又是什麼時候銷毀的?原題 思考 1,有返回值的類方法建立出來的物件都是autorelease的。autorelease物件出了作用域後,就會被新增到自動釋放池中。如果largenumber非常大,有可能在乙個for中就把自動釋放池填滿,記憶體消耗非常大!2,解決方案 在f...
自動釋放池
autorelease本質上就是延遲呼叫release方法 autorelease物件什麼時候釋放?引用計數為0的時候才會釋放,不是出了pool就釋放 在一些很消耗記憶體的迴圈呼叫的場景下有時需要手動干預autoreleased物件的釋放時機,不然會導致記憶體暴增,最終導致程式崩潰 nsthread...
自動釋放池
自動釋放池是允許你放棄對乙個物件的持有關係,但可以避免它立即被 的乙個工具,當從方法返回你的物件的時候,這個功能很有用。1 程式的入口處於在main 函式 這就意味著整個應用都在自動釋放池中,所有的物件最後都會被 int main int argc,char argv 2 autoreleasepo...