2

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

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

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

4

2 回答 2

5

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

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-selector-match"
// code
#pragma GCC diagnostic pop
于 2013-11-22T12:04:22.670 回答
0

要禁用警告,您可以查看clang 手册。像这样:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
    [theClass aClassMethodOfThatClass];
#pragma GCC diagnostic pop
于 2012-11-13T19:20:20.037 回答