在OC中,引用文件可以通過#include、#import、@class三種方式。
一. #include
1. 在C語言中,我們使用#include來引入頭文件。使用#include “xx.h”來引入自定義的頭文件,使用#include來引入庫中的頭文件。
2. #include不是不能防止重復引用頭文件,而是操作起來比較復雜。
3. #include:為了防止重復引用可采用:
#ifndef ?ViewController_h
#define ViewController_h
#endif
二. #import
1. #import是#include的升級版,可以防止重復引入頭文件這種現象的發生。
2. #import在引入頭的時候,就是完全將頭文件拷貝到現在的文件中。所以也有效率上的問題。
3. #import最大的問題在于,需要避免出現頭文件遞歸引入的現象。(如:A引入B,B引入A,那么A、B的頭文件會互相不停的拷貝)
三. @class
1. @class用來告訴編譯器,有這樣一個類,使書寫代碼時,不報錯。 但是@class只是使導入的類名在引用時不受影響,不能創建該類的對象,因為創建對象時也需要訪問其內部方法。
2. 因為#import引入頭文件有效率問題,所以,當還沒有調用類中方法,僅僅是定義類變量的時候,使用@class來提醒編譯器。而在真正需要調用類方法的時候,進行#import。
3. 如果A是B的父類,那么這是在B.h中就必須要使用#import來引入A的頭,因為需要知道A類中有哪些變量和方法,以免B類中重復定義。 ?