Instance Method インスタンスメソッド

doesNotRecognizeSelector(_:)

Handles messages the receiver doesn’t recognize. レシーバが認識できないメッセージを取り扱います。

Declaration 宣言

func doesNotRecognizeSelector(_ aSelector: Selector!)

Parameters パラメータ

aSelector

A Selector that identifies a method not implemented or recognized by the receiver.

Discussion 解説

The runtime system invokes this method whenever an object receives an aSelector message it can’t respond to or forward. This method, in turn, raises an NSInvalidArgumentException, and generates an error message.

Any doesNotRecognizeSelector(_:) messages are generally sent only by the runtime system. However, they can be used in program code to prevent a method from being inherited. しかしながら、それらはあるメソッドが継承されるのを妨げるためにプログラムコードにおいて使われることができます。 For example, an NSObject subclass might renounce the copy() or init() method by re-implementing it to include a doesNotRecognizeSelector(_:) message as follows:


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

The _cmd variable is a hidden argument passed to every method that is the current selector; in this example, it identifies the selector for the copy method. This code prevents instances of the subclass from responding to copy messages or superclasses from forwarding copy messages—although responds(to:) will still report that the receiver has access to a copy method.

If you override this method, you must call super or raise an invalidArgumentException exception at the end of your implementation. In other words, this method must not return normally; it must always result in an exception being thrown. 言い換えれば、このメソッドは普通に返してはいけません;それは常に例外をスローされる結果になる必要があります。

See Also 参照

Related Documentation 関連文書