使用#import而不使用@class潛藏的問題:
1、建立復合關系的時候,你只希望需要成員變量對象的類型,不需要它的類的其他部分,這存在代碼的安全性問題。
2、使用#import的頭文件沖過發生了改變,引用它的頭文件都需要被重新編譯,這導致效率低下。
3、在2個類互相引用的時候,#import會引起編譯錯誤,而@class則不會。
啥時候應該用#import?
一個頭文件里面包含了許多個類聲明,并且引用這個頭文件的時候。
使用@class有啥講究?
1、頭文件名與類名一樣。
2、頭文件只有該類別無其他。
3、如果需要使用該類的實例變量和方法,需要在.m中#import ClassName。
protocol在工程中的作用是啥?
解耦,另外,協議最好單獨放在一個頭文件中,以免引用不必要的其他內容進來。
@class有啥用?
就是告訴其他類有這么一個類型,你就放心用吧。