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

Jak*_*kob 2 objective-c

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

- (void) fooWithClass: (Class) theClass
{
    [theClass aClassMethodOfThatClass];
}
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*ter 5

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

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-selector-match"
// code
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)