1.為什么說(shuō)Objective-C是一門(mén)動(dòng)態(tài)的語(yǔ)言?
a.動(dòng)態(tài)類(lèi)型:運(yùn)行時(shí)再?zèng)Q定對(duì)象的類(lèi)型,編譯器編譯時(shí)是不被識(shí)別的;相對(duì)應(yīng)的是靜態(tài)類(lèi)型:編譯時(shí)就已經(jīng)識(shí)別對(duì)象的類(lèi)型,如果類(lèi)型不對(duì)應(yīng),程序在編譯過(guò)程中就會(huì)發(fā)出警告;
b.動(dòng)態(tài)綁定:當(dāng)一個(gè)實(shí)例對(duì)象被確定后,其類(lèi)型也被確定,其對(duì)于的屬性和響應(yīng)的方法也被完全確定,這就好動(dòng)態(tài)綁定;
c.動(dòng)態(tài)加載:根據(jù)需要加載資源;比如在plus手機(jī)上加載@3x的圖片,在5s,6上加載@2x的圖片等
2.為什么代理要用weak?代理的delegate和dataSource有什么區(qū)別?block和代理的區(qū)別?
1. weak:指明該對(duì)象并不負(fù)責(zé)保持delegate這個(gè)對(duì)象,delegate這個(gè)對(duì)象的銷(xiāo)毀由外部控制; ?strong:該對(duì)象強(qiáng)引用delegate,外界不能銷(xiāo)毀delegate對(duì)象,會(huì)導(dǎo)致循環(huán)引用(Retain Cycles); ?代理使用weak(assign)是防止循環(huán)引用;
2. Datasource是數(shù)據(jù)源, 在告訴使用者之前的view中都有什么東西,有什么屬性,屬性的值都是多 ? ? ?少,是只關(guān)于數(shù)據(jù)的東西. ?Delegate用來(lái)監(jiān)聽(tīng)view的一些操作, 是在告訴使用者view有什么方法可以供我調(diào)用. ?一個(gè)是數(shù)據(jù),一個(gè)是操作。
3.參考http://www.itdecent.cn/p/4e829fa34494
http://www.itdecent.cn/p/8b3cf2187255
NSString為什么要用copy關(guān)鍵字,如果用strong會(huì)有什么問(wèn)題?http://www.cnblogs.com/Caersi/p/6376213.html
如何令自己所寫(xiě)的對(duì)象具有拷貝功能?http://www.itdecent.cn/p/c106d1e6f4bc