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

残りのメソッドはカテゴリで宣言され、同じヘッダー ファイルで宣言されます。

この回答を読んだ後、その意味は主にコードの整理にあるようです。

クラス宣言と同じヘッダーでカテゴリを宣言することには、(メソッドの論理グループ化以外に) 利点がありNSStringますか?

4

1 に答える 1

8

一般的に、カテゴリは組織的な目的で使用されます。ただし、クラスクラスターであるNSStringため、主に使用されます。NSStringそのため、カテゴリは、クラスター内のクラスの追加メソッド (プリミティブ メソッドではなく) を定義するために使用されます。

クラス クラスターについては、Mike Ash による素晴らしい記事がここにあります

于 2013-05-31T19:48:42.793 に答える