无法知道doesNotRecognizeSelector _cmd

时间:2013-02-11 10:17:00

标签: iphone

任何人都可以告诉我NotRecognizeSelect _cmd会做什么

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

[self doesNotRecognizeSelect:_cmd];没有自我方法调用但是它的调用,任何人都可以了解_cmd到doesNotRecognizeSelect

1 个答案:

答案 0 :(得分:0)

- (void)doesNotRecognizeSelector:(SEL)aSelector

一个_cmd

的选择器

它声明该方法未被接收者实现或识别。

只要对象收到无法响应或转发的aSelector消息,运行时系统就会调用此方法。反过来,此方法会引发NSInvalidArgumentException,并生成错误消息。

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

_cmd变量是传递给当前选择器的每个方法的隐藏参数;在此示例中,它标识了复制方法的选择器。此代码阻止子类的实例响应转发复制消息的复制消息或超类 - 尽管respondsToSelector:仍将报告接收者有权访问复制方法。