私はタイプUIViewControllerSubclass : UIViewController
のクラス構造を持っています。ここでUIViewControllerSubclassの唯一の機能は#import UIViewController+Category.h
です。私がカテゴリにメソッドを追加した理由は、も作ることができるので、#import UIViewController+Category.h
にもなります。私たち皆が知っているように、あなた自身を繰り返さないでください。Objective-Cでカテゴリ定義のメソッドをオーバーライドすることは安全ですか?
@interface UIViewController(Category)
- (void) method1;
- (void) method2;
@end
それがどのように安全であるUIViewControllerSubclassSubclass : UIViewControllerSubclass
を作成するために、method1
をオーバーライドします:
は今のUIViewController + Category.hは、構造を有していることを前提と?私はこれがObjective-Cのメッセージの受け渡しのためにうまくいくと考えていますが、何らかの理由で私の直感が私に間違っていると伝えています。
Objective-Cは "duck typed"であることを覚えておく必要があります。あるクラスがメソッドをサポートしている場合、メソッドがクラスの.hファイルで定義されていなくても、(安全に)呼び出すことができます。 (コンパイラチェックを傍受する方法はあなた次第です) –