1.自動(dòng)釋放池@autoreleasepool:存入到自動(dòng)釋放池的對(duì)象,在自動(dòng)釋放池銷(xiāo)毀時(shí),會(huì)自動(dòng)調(diào)用池內(nèi)所有對(duì)象的release方法。調(diào)用autorelease方法將對(duì)象放入自動(dòng)釋放池。?
? ?Person *p1 = [ [ [ Person alloc ] init ] autorelease];
2.在類(lèi)方法里寫(xiě)一個(gè)同名的方法,用于創(chuàng)造對(duì)象。
(+)instancetype person{
? ? ? ? return?[ [ [ self alloc ] init ] autorelease];
}
3.ARC:自動(dòng)計(jì)算對(duì)象的引用值,不要寫(xiě)release、retain、autorelease,retainCount關(guān)鍵字。
? ? ? ? ? ? 沒(méi)有強(qiáng)指針指向該對(duì)象時(shí),對(duì)象會(huì)被回收。要么強(qiáng)指針被回收要么置為nil。
4.強(qiáng)指針弱指針:默認(rèn)為強(qiáng)指針,_strong來(lái)聲明強(qiáng)指針。_weak來(lái)聲明弱指針。
5.參數(shù)strong和weak:針對(duì)指針,默認(rèn)為strong。strong代表@property聲明的私有屬性是強(qiáng)類(lèi)型。weak是弱類(lèi)型。
6.循環(huán)引用:A中有B,B中有A,如果兩個(gè)都是strong就會(huì)內(nèi)存泄漏。應(yīng)該一端strong一端weak。
如果在MRC中一端retain一端assign。
10.延展Extension:是一個(gè)特殊的分類(lèi),沒(méi)有類(lèi)名,只有聲明沒(méi)有實(shí)現(xiàn),實(shí)現(xiàn)與本類(lèi)共享,也是類(lèi)的一部分。將延展寫(xiě)在本類(lèi)的實(shí)現(xiàn)文件。
? ? ? ? @interface 本類(lèi)() @end
11.延展的作用:為類(lèi)定義私有成員,如果類(lèi)的成員只希望在類(lèi)內(nèi)部訪問(wèn),就定義在延展中。如果類(lèi)的成員允許外界訪問(wèn),就定義在本類(lèi)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-854687.html
12.延展和分類(lèi)的區(qū)別:①分類(lèi)有名字,延展沒(méi)名字。②每個(gè)分類(lèi)都有單獨(dú)的聲明和實(shí)現(xiàn),延展只有聲明沒(méi)有實(shí)現(xiàn),和本類(lèi)共享一個(gè)實(shí)現(xiàn)。③分類(lèi)只能新增方法,延展中任意的成員可以寫(xiě)。④分類(lèi)中可以寫(xiě)@property,只會(huì)生成setter和getter的聲明,延展寫(xiě)@property生成私有屬性,生成setter和getter的聲明和實(shí)現(xiàn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-854687.html
到了這里,關(guān)于Objective-C學(xué)習(xí)筆記(ARC,分類(lèi),延展)4.10的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!