私が知っているように、オーバーロードされたメソッド(カテゴリ)では、[super method]
にコールして元のクラスに渡すことができます。 私の場合は、クラスのヘッダファイルを持っていないので、私は書く:obj-cカテゴリのオーバーロードされたメソッド:元のクラスに渡す方法?
@interface OriginalClass : NSObject
@end
@interface OriginalClass (overloadMethod)
-(void) method;
@end
@implementation OriginalClass (overloadMethod)
-(void) method
{
// some my code
[super method]; // here is warning that "NSObject may not respond to '-method'
}
@end
だから、そのヘッダファイルをせずに正しくOriginalClass
にmethod
を渡すことが可能ですか?おそらくmethod_setImplementation
を見る方が良いでしょうか?
は、この問題に関する自分の無知を言い訳最初の答えではドキュメントからの引用だろうがない '[セルフ方式]'同じメソッドの再帰呼び出しの量? – Monolo
Apple docsによると、カテゴリの「スーパー」は元のクラスを意味します。同じ質問が議論されますが、ここで解決されていません:http://stackoverflow.com/questions/1405060/using-super-in-an-objective-c-category – brigadir
@モノロはい、そうです。だからこそ私はなぜカテゴリー内のメソッドをオーバーライドしているのか理解しようとしています。 –