OC作為一門面向?qū)ο蟮恼Z言,自然具有面向?qū)ο蟮恼Z言特性,如:封裝、多態(tài)、繼承。它具有靜態(tài)語言的特性,又有動(dòng)態(tài)語言的效率??傮w來說,它確實(shí)是一門不錯(cuò)的編程語言。
Objective-C 具有相當(dāng)多的動(dòng)態(tài)特性,表現(xiàn)在三個(gè)方面:動(dòng)態(tài)類型、動(dòng)態(tài)綁定、動(dòng)態(tài)加載。之所以叫做動(dòng)態(tài),是因?yàn)楸仨毜竭\(yùn)行時(shí)才會(huì)做一些事情。
1、 動(dòng)態(tài)類型:及運(yùn)行時(shí)再?zèng)Q定對(duì)象的類型。這類動(dòng)態(tài)類型在日常應(yīng)用中非常常見。簡(jiǎn)單說就是id類型。實(shí)際上靜態(tài)類型因?yàn)槠涔潭ㄐ院涂深A(yù)知性而使用的非常廣泛,靜態(tài)類型是強(qiáng)類型,而動(dòng)態(tài)類型屬于弱類型。運(yùn)行時(shí)決定接受者。
2、 動(dòng)態(tài)綁定 :基于動(dòng)態(tài)類型,在某個(gè)實(shí)例對(duì)象被確定后,其類型就被確定了。該對(duì)象的屬性和響應(yīng)的消息也被完全確定,這就是動(dòng)態(tài)綁定。
3、 動(dòng)態(tài)加載:根據(jù)需求加載所需要的資源,這點(diǎn)很容易理解,對(duì)于iOS開發(fā)來說,基本就是根據(jù)不同的急性左適配。最經(jīng)典的例子就是在Retina 設(shè)備上加載@2x的圖片,而在老一些的普通設(shè)備上加載原圖。隨著Retina iPad的推出,和之后可能的Retina Mac的出現(xiàn),這個(gè)特性相信會(huì)被越來越多的使用。讓程序在運(yùn)行時(shí)添加代碼塊以及其他資源。用戶可以根據(jù)需要加載一些可執(zhí)行代碼和資源,而不是在啟動(dòng)時(shí)就加載所有組件。可執(zhí)行代碼中可以含有和程序運(yùn)行時(shí)整合的新類.