1. 一般來(lái)說(shuō),導(dǎo)入objective c的頭文件時(shí)用#import,包含c/c++頭文件時(shí)用#include。
2. #import 確定一個(gè)文件只能被導(dǎo)入一次,這使你在遞歸包含中不會(huì)出現(xiàn)問(wèn)題。<標(biāo)記>
所以,#import比起#include的好處就是不會(huì)引起交叉編譯。
#import && #class:
1. import會(huì)包含這個(gè)類的所有信息,包括實(shí)體變量和方法(.h文件中),而@class只是告訴編譯器,其后面聲明的名稱是類的名稱,至于這些類是如何定義的,后面會(huì)再告訴你。
2. 在頭文件中, 一般只需要知道被引用的類的名稱就可以了。 不需要知道其內(nèi)部的實(shí)體變量和方法,所以在頭文件中一般使用@class來(lái)聲明這個(gè)名稱是類的名稱。 而在實(shí)現(xiàn)類里面,因?yàn)闀?huì)用到這個(gè)引用類的內(nèi)部的實(shí)體變量和方法,所以需要使用#import來(lái)包含這個(gè)被引用類的頭文件。
備注:#import 就是把被引用類的頭文件走一遍,即把.h文件里的變量和方法包含進(jìn)來(lái)一次,且僅一次,而@class不用,所以后者編譯效率更高。
3. 在編譯效率方面考慮,如果你有100個(gè)頭文件都#import了同一個(gè)頭文件,或者這些文件是依次引用的,如A 主站蜘蛛池模板: 宁国市| 新竹县| 衡阳县| 奉节县| 弥勒县| 大姚县| 鲁山县| 革吉县| 兖州市| 津南区| 连城县| 资溪县| 浙江省| 绥中县| 抚远县| 三门峡市| 东平县| 峨山| 阳山县| 德安县| 翁牛特旗| 施甸县| 环江| 扶沟县| 彭州市| 彰化县| 台东县| 乐山市| 南和县| 东辽县| 泰安市| 嘉荫县| 昌吉市| 西吉县| 博野县| 十堰市| 黎平县| 黄大仙区| 毕节市| 融水| 忻州市|