第2條: 在類的頭文件中盡量少引入其他頭文件

使用向前聲明隱藏類別細節

@class className

將引入頭文件的時機盡量延后, 只在確有需要時才引入,這樣就可以減少類的使用者所需引入的頭文件數量
如果在各自頭文件中引入對方的頭文件, 則會導致"循環引用"(chicken-and-egg situation). 使用#import而非#include指令雖然不會導致死循環, 但卻這意味著兩個類里有一個無法被正確編譯.

// chicken-and-egg situation
#import "ClassB.h"
@interface ClassA : NSObject
@property (nonatomic,weak) ClassB *classB;
@end

#import "ClassA.h"
@interface ClassB : NSObject
@end

在進行編譯時,會報出以下錯誤:
!Property with 'weak' attribute must be of object type
!Unknown type name 'ClassB'

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容