首先OC引入頭文件的關(guān)鍵字 #import 和 C/C++的#include有一點不一樣就是,同一個頭文件或者.m文件import兩個一樣的頭文件時,會自己過濾掉重復(fù)引入的頭文件,而#include我們自需要自己寫宏定義。而import有一點需要注意的是,有的人說來個頭文件相互循環(huán)引用(即A頭文件引入B頭文件,B頭文件又引入A頭文件)會出現(xiàn)相互不停的拷貝的問題,但是我自己實際是過一下,編譯和運行其實并沒有什么問題,其實這種情況,和頭文件定義時自己引用自己的問題是一樣的,我也嘗試過頭文件自我引用,也沒用出現(xiàn)無限循環(huán)和其他的BUG。
但是不管怎么樣,都不應(yīng)該出現(xiàn)循環(huán)引用或者頭文件自我引用的情況,因為沒有意義。
頭文件盡量少引用其他的頭文件,主要是為了減少編譯時的負(fù)擔(dān),從而減少編譯所需要的時間,這雖然對于程序編譯完成之后的運行沒有什么特別的效率影響,但是對于一個程序員來說,減少編譯的時間可以提高工作效率,我在使用Eclipse做JAVA WEB開發(fā)的時候,就有一個非常明顯的感覺,項目比較大的時候,編譯時間特別長,C語言也是一樣的,我自己編譯安裝OpenSSL的時候,光編譯就花了十幾分鐘吧,當(dāng)然這和我的機器配置也有關(guān)系。
OC中有一個@class的用法,稱之為前置類型聲明,也被稱作“向前聲明”,因為協(xié)議的聲明不需要知道該類的實現(xiàn)細(xì)節(jié),僅僅是在協(xié)議的實現(xiàn)的時候需要用到,我通常在一個類的頭文件中加入?yún)f(xié)議定義的時候會用到,告訴協(xié)議需要用到這個類,在協(xié)議定義完成之后,就開始定義這個類。
一般來講,有的同學(xué)可能覺得無所謂,反正多引入了也不會對程序運行產(chǎn)生不利的影響,但是這種習(xí)慣并不好,一旦這種壞習(xí)慣不改,就會導(dǎo)致寫代碼邏輯混亂,有用的寫,沒有用的也寫,代碼質(zhì)量就很低,干凈的代碼看了會讓人賞心悅目,我個人非常討厭代碼里面無用頭文件或者無用的變量引出的告警,還有就是變量、方法、類或者屬性的聲明名字不遵循一定的規(guī)則,而是隨性而為,有時用Pascal,有時用Camel,有時根本就沒有任何規(guī)則,一般公司都有特定的規(guī)則,比如蘋果就很明顯,NS前綴,CG前綴等等。
Effective Objective-C 2.0/頭文件中盡量少引入其他頭文件
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 與C和C++一樣,Objective-C也使用"頭文件"(header file)與"實現(xiàn)文件"(implemen...
- 蘋果官方文檔翻譯 《Objective-C語言編程》(Programming with Objective-C) ...
- 記難忘的小學(xué)同窗會 為何春池悠悠泛起漣漪 為何秋草離離飛黃再綠 南閣的燕呢 北津的花絮 曾經(jīng)旖旎的風(fēng)景 曾經(jīng)飛逝的...
- 練習(xí) 14:雙鏈表 原文:Exercise 14: Double Linked Lists 譯者:飛龍 協(xié)議:CC...