我有一个像[类方法]这样的调用,并且警告说类可能没有 回应“方法”消息。
“方法”消息确实不存在但我的代码使用未知消息捕获 (使用forwardingTargetForSelector)所以它运行正常,并且构建为以这种方式运行。 我该如何隐藏这个恼人的警告?
答案 0 :(得分:16)
如果您打算向对象发送可能未实现的消息,并且您知道要捕获失败,则应使用该调用:
id myClone = [anObject performSelector:@selector(copy)];
这更直接地宣告了你的意图,即你正在调用一种可能不存在的方法,而你很酷。这是一种比清除警告或伪造方法更明确的方法。
答案 1 :(得分:3)
您可以定义声明该方法的类别。在编译时在范围内定义将避免警告。像
这样的东西@interface MyClass (ShutUpTheCompilerMethods)
- (void)method;
@end
...
[MyClass method] //no warning here