向Class发送消息 - 摆脱“多个名为[...]”的警告方法

时间:2012-11-13 19:12:15

标签: objective-c

我将一个Class类型作为参数传递给一个方法,并且XCode 4.5.2中的LLVM编译器生成一个警告,“多个名为'foo'find'的方法,这是可以理解的,但在这种情况下是不可取的。如何通过禁用此类警告或更改我的代码来消除此警告?

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

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

2 个答案:

答案 0 :(得分:4)

如果有人仍感兴趣,停用-Wall对我不起作用: 在使用LLVM手册后,我发现使用Peres方法(从Xcode 7开始)需要忽略的确切警告是:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-selector-match"
// code
#pragma GCC diagnostic pop

答案 1 :(得分:0)

要停用警告,您可以查看clang manual。像这样:

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