GCC_WARN_SHADOW = YES的单行异常?

时间:2011-05-09 19:07:56

标签: objective-c clang

我有这段代码:

id error;
// a bunch of stuff, including using error
Finalization finalization = ^(int status) {
    id error; // <--- Declaration shadows a local variable
    // a bunch of stuff, using error
}
// a bunch of stuff, using error

我使用GCC_WARN_SHADOW因为除了这个之外,我的代码中的所有情况都是我想要的。在这种情况下,它给了我一个我要压制的警告。

有没有办法在不关闭GCC_WARN_SHADOW 将内部错误重命名为其他内容的情况下抑制此一个阴影警告?某种方式来标记错误声明?

我正在使用Xcode 4,如果重要的话。

1 个答案:

答案 0 :(得分:1)

首先,作为一个观点,在内部块中遮蔽局部变量是非常糟糕的业力(它足够糟糕地遮蔽函数中的全局变量)。现在,“错误”可以在一个函数中使用两个不同的值,并且直到读取您的代码的任何人想出来,他们将不停地敲打他们的头。我在开发应用程序的付费专业人士的现实生活中看到了这个问题我真的建议重命名内部错误变量。

回答你的问题,你可以use the GCC/clang compiler pragma to suppress a warning