2013-05-31 164 views
5

周圍的一些頭文件戳在Foundation框架(NSString.h例如)後,我注意到,爲NSString的聲明如下:爲什麼在相同的頭文件中聲明一個類爲類聲明

@interface NSString : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> 

/* NSString primitive (funnel) methods. A minimal subclass of NSString just needs to implement these, although we also recommend getCharacters:range:. See below for the other methods. */ 
- (NSUInteger)length;   
- (unichar)characterAtIndex:(NSUInteger)index; 

@end 

其餘這些方法在類別中聲明,而這些類別又在同一個頭文件中聲明。

閱讀this answer後,其含義似乎主要是爲了組織代碼。

是否有一個好處(比方法邏輯分組除外)以同樣的標頭,如在類聲明聲明類,尤其是在執行被隱藏的情況下,如在NSString的情況?

回答

8

一般來說,是的,類別用於組織目的。但在NSString的情況下主要使用它們,因爲NSString是類集羣。因此,類別用於定義羣集中類的附加方法(與原始方法相對)。

關於來自Mike Ash here的班級集羣有一個很好的寫作。

相關問題