1.在非ARC的情況下,誰創(chuàng)建誰釋放底洗,當(dāng)對(duì)對(duì)象進(jìn)行alloc腋么,new,retain亥揖,copy時(shí)珊擂,需要調(diào)用release或autorelease釋放。當(dāng)引用計(jì)數(shù)為0的時(shí)候费变,會(huì)調(diào)用dealloc方法銷毀當(dāng)前對(duì)象摧扇。
2.在ARC的情況下,任何強(qiáng)指針(strong挚歧,retain)指向的對(duì)象就會(huì)被銷毀扛稽;任何弱指針(assign)指向的對(duì)象就不會(huì)被銷毀;默認(rèn)情況下對(duì)象都是強(qiáng)指針類型滑负。
3.自動(dòng)釋放池是OC的一種內(nèi)存自動(dòng)回收機(jī)制在张,可以將一些臨時(shí)變量通過自動(dòng)釋放池來回收統(tǒng)一釋放用含;內(nèi)存池autoreleasepool是用于管理那些被聲明為autorelease的對(duì)象,系統(tǒng)中有成千上萬個(gè)內(nèi)存池帮匾,系統(tǒng)內(nèi)存不足時(shí)啄骇,系統(tǒng)會(huì)從棧中取最頂層的池子把引用計(jì)數(shù)為0的對(duì)象釋放掉,收回的內(nèi)存給當(dāng)前應(yīng)用程序使用瘟斜。
自動(dòng)釋放池本身銷毀的時(shí)候缸夹,池子里面所有的對(duì)象都會(huì)做一次release操作。
在使用block的時(shí)候螺句,一定要注意不能在block里面直接對(duì)對(duì)象進(jìn)行操作明未,而是要是要使用__block或__weak進(jìn)行修飾,避免循環(huán)引用壹蔓,造成內(nèi)存泄漏趟妥。