2

クラス型をパラメーターとしてメソッドに渡しています。XCode4.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 に答える