Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在特定行上禁用xcode中的警告?_Xcode_Message_Warnings_Forwarding - Fatal编程技术网

如何在特定行上禁用xcode中的警告?

如何在特定行上禁用xcode中的警告?,xcode,message,warnings,forwarding,Xcode,Message,Warnings,Forwarding,我有一个类似于[Class方法]的调用,还有一个警告说类可能不会 响应“方法”消息 “方法”消息确实不存在,但我的代码使用未知消息捕获 (使用forwardingTargetForSelector)这样它就可以很好地运行,而且它是按这种方式构建的。 如何隐藏这个恼人的警告?您可以定义一个声明该方法的类别。在汇编时将定义纳入范围将避免警告。差不多 @interface MyClass (ShutUpTheCompilerMethods) - (void)method; @end ... [My

我有一个类似于[Class方法]的调用,还有一个警告说类可能不会 响应“方法”消息

“方法”消息确实不存在,但我的代码使用未知消息捕获 (使用forwardingTargetForSelector)这样它就可以很好地运行,而且它是按这种方式构建的。
如何隐藏这个恼人的警告?

您可以定义一个声明该方法的类别。在汇编时将定义纳入范围将避免警告。差不多

@interface MyClass (ShutUpTheCompilerMethods)
- (void)method;
@end

...

[MyClass method] //no warning here

如果您打算向对象发送一条可能未实现的消息,并且您知道将捕获失败,则应使用调用:

id myClone = [anObject performSelector:@selector(copy)];

这更直接地表明了您的意图,即您正在调用一个可能不存在的方法,您对此很冷静。这是一种比抑制警告或伪造方法更清晰的方法。

谢谢。我想如果我必须在每次调用时创建一个选择器,那么效率会降低。除非我将我的@selector全部声明为“一对一”,否则性能差异几乎无法检测。如果你担心的话,描述一下。不要过早地优化。
performSelector
仅适用于参数类型和返回类型均为对象的方法;而对于这种方法来说,只有0、1或2个ArgumentMethod和多个参数是另一个问题