这就是ObjC运行时的魅力,编译器查找已有的头文件,没看到这个对象能处理此消息,但ObjC宁愿相信运行时可能在其他地方找到实现,这是ObjC最初设计的目标之一,可以不依赖编译期。提示的警告形如:'object' may not respond to 'message'. 运行时查找消息可能会在:继承的子类或分类中找到真正的消息实现。但,运行时真的找不到此消息,就会出运行时异常,形如:unrecognized selector sent to instance xxxx.
这就是ObjC运行时的魅力,编译器查找已有的头文件,没看到这个对象能处理此消息,但ObjC宁愿相信运行时可能在其他地方找到实现,这是ObjC最初设计的目标之一,可以不依赖编译期。提示的警告形如:'object' may not respond to 'message'. 运行时查找消息可能会在:继承的子类或分类中找到真正的消息实现。但,运行时真的找不到此消息,就会出运行时异常,形如:unrecognized selector sent to instance xxxx.