Objective-C中@class和#import的區別

1. import會包含這個類的所有信息,包括實體變量和方法,而@class只是告訴編譯器,其後面聲明的名稱是類的名稱,至於這些類是如何定義的,暫時不用考慮,後面會再告訴你。

2. 如果有循環依賴關係,如:A->B,B->A這樣的相互依賴關係,如果使用#import來相互包含,那麼就會出現編譯錯誤,如果使用@class在兩個類的頭文件中相互聲明,則不會有編譯錯誤出現。

所以,一般來說,@class是放在interface中的,只是爲了在interface中引用這個類,把這個類作爲一個類型來用的,在實現這個類時,如果需要引用這個類的實體變量或者方法之類的,還是需要import。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章