Po wywiercenie kilku plików nagłówkowych w ramach Foundation
(NSString.h
na przykład), zauważyłem, że zgłoszenie o NSString
wygląda następująco:Dlaczego stwierdzenie kategorię w sam nagłówek jak plik deklaracji klasy
@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
Pozostałą część metody są zadeklarowane w kategoriach, które z kolei są zadeklarowane w tym samym pliku nagłówkowym.
Po przeczytaniu this answer, implikacja wydaje się być przeznaczona głównie do organizacji kodu.
Czy istnieje korzyść (inna niż logiczne grupowanie metod) do deklarowania kategorii w tym samym nagłówku co deklaracja klasy, szczególnie w przypadku, gdy implementacja jest ukryta, jak w przypadku NSString
?