use*_*008 7 xcode warnings objective-c ios automatic-ref-counting
在ARC之前,我有一个"X可能没有响应xxx" 警告,这是一个非常无害的警告,不会阻止它编译.现在,我正在尝试将我的项目转换为ARC,并且我有一个"没有可见的@interface for X声明选择器xxx" 错误,这会阻止它编译.
我确切地知道我在做什么,为什么警告在那里,我可以告诉你程序是正确的.以前,编译器编译它没有问题,现在不应该停止编译.
确实,类X的接口没有声明那个选择器,但是X是一个动态处理任何发送给它的选择器的消息的类forwardInvocation:
(这是关于Objective-C的美妙事物之一),所以它的接口不可能声明可以在其上调用的所有选择器.并且选择器在某处声明,而不是在X上.
我确切地知道我在做什么,为什么警告在那里,我可以告诉你程序是正确的.
好的 - 只需使用objc_msgSend
等.直接如果你想做编译器的工作.
确实,类X的接口没有声明那个选择器,但是X是一个使用forwardInvocation动态处理发送给它的任何选择器的消息的类:(这是关于Objective-C的美妙事物之一),所以它的接口不可能声明可以在其上调用的所有选择器.并且选择器在某处声明,而不是在X上.
如果声明但是不够乏味,在消息传递中使用似乎与您的程序使用选择器相矛盾,那就太麻烦了......听起来像是生成代码的危险区域,需要大量人工干预.
也许您应该考虑声明一个协议,以便编译器至少可以为您正确设置消息调用 - 如果您更改或破坏了某些内容,它就有机会适应或通知您.
归档时间: |
|
查看次数: |
3881 次 |
最近记录: |