iOS的動態(tài)性

1、iOS的動態(tài)性來自三個方面:動態(tài)類型、動態(tài)綁定、動態(tài)載入、SEL類型

1、動態(tài)類型<弱類型>(id):在代碼的運行階段判斷代碼的類型,使用id類型可以讓應用在“運行時”使用任何類型來替換。動態(tài)類型讓程序更加靈活,但是會使數(shù)據(jù)的統(tǒng)一性降低和代碼的可讀性。我們常用靜態(tài)類型<強類型>(如NSString),使用靜態(tài)類型編譯器可以完全分析你的代碼,這讓代碼的性能和可預知性更高。

2、動態(tài)綁定:讓代碼在運行時判斷需要調用什么方法,而不是在編譯時。動態(tài)類型和動態(tài)綁定使得選擇哪個接收者已經(jīng)調用什么方法都放到運行時去完成.

3、動態(tài)載入:應用程序可以根據(jù)需要加載可執(zhí)行代碼以及資源,而不是在啟動時就加載所有資源。

4、SEL類型iOS在編譯的時候會根據(jù)方法的名字(包括參數(shù)序列),生成一個用來區(qū)分這個方法的唯一的ID,這個ID是SEL類型的,SEL的本質就是類方法的編號[函數(shù)地址]。(類似C語言里面的函數(shù)指針,但是OC的類不能直接使用函數(shù)指針,這樣只能做一個@selector語法來取。注意:@selector是查找當前類(含子類)的方法。)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容