【轉】
#import和#include的差別
(1)使用場合不同
#import是導入Objective-C頭檔案的關鍵詞,#include是導入C/C++頭檔案的關鍵詞
(2)重複引用
使用#include需要處理重複引用,#import能防止同一個檔案被多次包含,則不需要處理重複引用
#import和@class的差別:
(1)包不包含
#import會包含這個類的所有資訊(包括實體變量和方法),而@class隻是告訴編譯器,其後面聲明的名稱是類的名稱,至于這些類是如何定義的,你現在不需要關心
(2)用與不用
在頭檔案中,一般隻需要知道被引用的類的名稱就可以了,不需要關心類内部細節,所有用@class
在實作檔案中,會用到被引用類的内部的實體變量和方法,是以用#import來包含被引用類的頭檔案
(3)編譯效率
假如你有100個頭檔案都#import了同一個頭檔案A,或者這些檔案存在依賴關系:A–>B, B–>C, C–>D…。當頭檔案A發生改變的時候,後面所有引用它的類都需要重新編譯,這是非常耗性能的。而用@class則不會。
(4)是否會産生循環依賴
假如有循環依賴關系:A–>B,B–>A,如果使用#import來互相包含,那麼就會出現編譯錯誤,如果使用@class在兩個類的頭檔案中互相聲明,則不會有編譯錯誤出現。
是以,一般來說,@class是放在interface中的,隻是為了在interface中聲明這個類。如果在@implementation中需要引用這個類的實體變量或者方法之類的,還是需要import在@class中聲明的類進來.
#import<>和#import的差別
這兩者差別很簡單,#import用來包含系統自帶的檔案,#import""用來包含自定義的檔案
作者:zgs_helloworld
來源:CSDN
原文:https://blog.csdn.net/zgs_helloworld/article/details/45998933
版權聲明:本文為部落客原創文章,轉載請附上博文連結!