Zastąp metodę za pomocą kategorii ObjC i wywołaj domyślną implementację?
Używając kategorii, możesz zastąpić metody implementacji własnymi, w ten sposób:
// Base Class
@interface ClassA : NSObject
- (NSString *) myMethod;
@end
@implementation ClassA
- (NSString*) myMethod { return @"A"; }
@end
//Category
@interface ClassA (CategoryB)
- (NSString *) myMethod;
@end
@implementation ClassA (CategoryB)
- (NSString*) myMethod { return @"B"; }
@end
Wywołanie metody „myMethod” po uwzględnieniu kategorii oznacza wynik „B”.
Jak najłatwiej jest wywołać oryginalną klasę myMethod w implementacji kategorii myMethod? Tak blisko, jak tylko mogę się domyślić, trzeba użyć wywołań niskiego poziomu, aby uzyskać oryginalny hak metody dla klasy A i wywołać to, ale wydawało się, że będzie to łatwiejszy do syntaktycznego sposobu.