你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> #include,#import,@class的區別

#include,#import,@class的區別

編輯:IOS開發綜合
#include         #include  <>    :用於對系統文件的引用,編譯器會在系統文件目錄下去查找該文件。           #include "xx.h":用於對用戶自定義的文件的引用,編譯器首先會去用戶目錄下查找,然後去安裝目錄,最後去系統目錄查找。          注:使用include要注意重復引用的問題:          class A,class B都引用了class C,class D若引用class A與class B,就會報重復引用的錯誤。   #import       功能與include基本相同,不過它避免了重復引用的問題。所以在OC中我們基本用的都是import。   @class       @class就是告訴編譯器有這個類存在,但是類是如何實現的不用告訴編譯器.若.m文件用到了這個類,還是要在.m文件匯總import這個類的。       既然這樣,為什麼不直接在頭文件中import呢,舉個例子:       class A引用了class B,class B引用了class C.... , class A,B,C...的頭文件又import了很多文件,那麼 import了A的話,編譯器就需要編譯大量的文件,編譯時間就會增加。          難道頭文件中都是用@class嗎?當然不是,有時也是需要#import的,那麼什麼時候該用什麼呢? (1)一般如果有繼承關系的用#import,如B是A的子類那麼在B中聲明A時用#import;   (2) 另外就是如果有循環依賴關系,如:A->B,B->A這樣相互依賴時,如果在兩個文件的頭文件中用#import分別聲明對方,那麼就會出現頭文件循環利用的錯誤,這時在頭文件中用@class聲明就不會出錯;   (3)還有就是自定義代理的時候,如果在頭文件中想聲明代理的話如@interface SecondViewController:UIViewController時應用#import不然的話會出錯誤,注意XXXXDelegate是自定義的。  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved