Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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
Objective c 向班级发送消息-摆脱“信息”;名为[…]的多个方法;警告_Objective C - Fatal编程技术网

Objective c 向班级发送消息-摆脱“信息”;名为[…]的多个方法;警告

Objective c 向班级发送消息-摆脱“信息”;名为[…]的多个方法;警告,objective-c,Objective C,我将一个类类型作为参数传递给一个方法,XCode 4.5.2中的LLVM编译器会生成一个警告,“找到了多个名为'foo'的方法”,这是可以理解的,但在本例中是不需要的。如何通过禁用此类警告或更改代码来消除此警告 - (void) fooWithClass: (Class) theClass { [theClass aClassMethodOfThatClass]; } 更具体地说,参数是某个基类的子类,我正在发送一条在该基类中声明的消息 要禁用警告,您可以检查。像这样: #pragma

我将一个类类型作为参数传递给一个方法,XCode 4.5.2中的LLVM编译器会生成一个警告,“找到了多个名为'foo'的方法”,这是可以理解的,但在本例中是不需要的。如何通过禁用此类警告或更改代码来消除此警告

- (void) fooWithClass: (Class) theClass
{
    [theClass aClassMethodOfThatClass];
}

更具体地说,参数是某个基类的子类,我正在发送一条在该基类中声明的消息

要禁用警告,您可以检查。像这样:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
    [theClass aClassMethodOfThatClass];
#pragma GCC diagnostic pop

禁用
-墙
对我不起作用,以防有人仍感兴趣:
在深入阅读LLVM手册之后,我发现使用Peres的方法(从Xcode 7开始)需要忽略的确切警告是:


适用于OSX目标,但不适用于iOS。这两个版本的编译器都设置为LLVM 4.1。有什么想法吗?谢谢当我尝试这段代码并删除了警告时,我实际上是针对iOS的。我也在使用
LLVM4.1
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-selector-match"
// code
#pragma GCC diagnostic pop