如何在特定行上禁用xcode中的警告?
我有一个类似于[Class方法]的调用,还有一个警告说类可能不会 响应“方法”消息 “方法”消息确实不存在,但我的代码使用未知消息捕获 (使用forwardingTargetForSelector)这样它就可以很好地运行,而且它是按这种方式构建的。如何在特定行上禁用xcode中的警告?,xcode,message,warnings,forwarding,Xcode,Message,Warnings,Forwarding,我有一个类似于[Class方法]的调用,还有一个警告说类可能不会 响应“方法”消息 “方法”消息确实不存在,但我的代码使用未知消息捕获 (使用forwardingTargetForSelector)这样它就可以很好地运行,而且它是按这种方式构建的。 如何隐藏这个恼人的警告?您可以定义一个声明该方法的类别。在汇编时将定义纳入范围将避免警告。差不多 @interface MyClass (ShutUpTheCompilerMethods) - (void)method; @end ... [My
如何隐藏这个恼人的警告?您可以定义一个声明该方法的类别。在汇编时将定义纳入范围将避免警告。差不多
@interface MyClass (ShutUpTheCompilerMethods)
- (void)method;
@end
...
[MyClass method] //no warning here
如果您打算向对象发送一条可能未实现的消息,并且您知道将捕获失败,则应使用调用:
id myClone = [anObject performSelector:@selector(copy)];
这更直接地表明了您的意图,即您正在调用一个可能不存在的方法,您对此很冷静。这是一种比抑制警告或伪造方法更清晰的方法。谢谢。我想如果我必须在每次调用时创建一个选择器,那么效率会降低。除非我将我的@selector全部声明为“一对一”,否则性能差异几乎无法检测。如果你担心的话,描述一下。不要过早地优化。
performSelector
仅适用于参数类型和返回类型均为对象的方法;而对于这种方法来说,只有0、1或2个ArgumentMethod和多个参数是另一个问题