@interface MySuperclass : NSObject {
}
@end
@interface MySuperclass (MyCategory)
- (void)myMethod;
@end
@interface MySubclass : MySuperclass {
}
@end
@interface MySubclass (MyOtherCategory)
- (void)myMethod;
@end
-myMethodのどの実装が呼び出されるかが定義されていますか?
Kochanは、Objective-Cのプログラミングで次のように述べています。
複数のカテゴリが同じクラスに対して同じ名前のメソッドを宣言している場合、呼び出されたときにどのメソッドが実行されるかは定義されていません。
しかし、このコンテキストでは、スーパークラスのカテゴリが同じクラスのカテゴリと見なされるかどうかはわかりません。