在細讀一些Apple Header文件時,我注意到他們使用類別爲同一對象聲明瞭多個接口。Apple Headers包含多個類別
例如:NSDictionary.h
@interface NSDictionary : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration>
//methods
@end
@interface NSDictionary (NSExtendedDictionary)
//methods
@end
@interface NSDictionary (NSDictionaryCreation)
//methods
@end
這是一個純粹的方式來幫助組織代碼?作爲用戶沒有區別,所有類別的所有方法在使用NSDictionary
時都會出現。
這是否還有其他一些有用的結果?
@Bavarious總結一下,在這種情況下:值得一提的是,如果你聲明瞭一個類別,你會得到一個警告,然後編寫一個'@ implementation'部分,它不會實現你聲明的所有方法。然而,沒有「@實施」部分的類別沒有問題,歷史上你可能已經在例如'NSObject'作爲創建_informal協議_的一種手段,但是Apple現在使用'@ protocol'關鍵字並推薦'@ protocol'來代替。 – alastair 2011-05-04 10:34:24
反之亦然:您可以在不創建@interface部分的情況下爲類別編寫@implementation。我一直都在爲現有類的私有插件做這件事。再次 - 這是組織代碼的好方法。 – nielsbot 2011-05-04 19:08:50