0

doesNotRecognizeSelect _cmd が何をするか教えてもらえますか

- (NSDictionary*)Event:(EventBase*)eventBase
{
    [self doesNotRecognizeSelector:_cmd];
    return nil;
}

[self doesNotRecognizeSelect:_cmd]; 自己メソッドの呼び出しはありませんが、その呼び出しです. _cmd から doesNotRecognizeSelect についてのアイデアはありますか?

4

1 に答える 1

0
- (void)doesNotRecognizeSelector:(SEL)aSelector

_cmd である aSelector

メソッドが実装されていないか、受信者によって認識されていないことを示しています。

ランタイム システムは、オブジェクトが応答または転送できない aSelector メッセージを受信するたびに、このメソッドを呼び出します。このメソッドは、NSInvalidArgumentException を発生させ、エラー メッセージを生成します。

- (id)copy
{
    [self doesNotRecognizeSelector:_cmd];
}

_cmd 変数は、現在のセレクターであるすべてのメソッドに渡される隠し引数です。この例では、copy メソッドのセレクターを識別します。このコードは、サブクラスのインスタンスがコピー メッセージに応答したり、スーパークラスがコピー メッセージを転送したりするのを防ぎます。

于 2013-02-11T10:27:41.223 に答える