当没有Objective-C消息的匹配方法时会发生什么?

Arn*_*son 4 objective-c

我有点不解:

  • 可可编程对于Mac OS X(第63页,第3版,艾伦·希尔加斯):"如果达到[传承]树的顶端没有找到一个方法,函数抛出一个异常".

  • 上Objective-C的维基百科文章:"到被引导消息的对象(被称为接收器)不具有固有的保证一个消息响应,并且如果它不它简单地忽略它,并返回一个空指针".

哪一个?

Tom*_*ing 7

当找不到选择器时,它将转到 - [NSObject doesNotRecognizeSelector:].默认实现会触发异常.

  • 但是,请注意-doesNotRecognizeSelector:的合约要求如果被覆盖,新实现必须在结尾处引发NSInvalidArgumentException. (2认同)