Nach Stochern einiger Header-Dateien im Foundation
Rahmen (NSString.h
zum Beispiel), um eine Kategorie in Same Header-Datei erklären, bemerkte ich, dass die Erklärung für NSString
wie folgt aussieht:Warum als Klassendeklaration
@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
Der Rest Die Methoden sind in Kategorien deklariert, die wiederum in derselben Header-Datei deklariert sind.
Nach dem Lesen von this answer scheint die Implikation hauptsächlich für das Organisieren von Code zu sein.
Gibt es einen Vorteil (abgesehen von der logischen Gruppierung von Methoden), um Kategorien in derselben Kopfzeile wie die Klassendeklaration zu deklarieren, insbesondere in dem Fall, in dem die Implementierung ausgeblendet ist, wie im Fall NSString
?