有3种(我知道)抑制"未使用变量的方法"警告。任何特定方式都比其他方式更好?
首先
- (void)testString:(NSString *)testString
{
(void)testString;
}
第二
- (void)testString:(NSString *)__unused testString
{
}
第三
- (void)testString:(NSString *)testString
{
#pragma unused(testString)
}
答案 0 :(得分:5)
这是我使用的方法:cross platform macro for silencing unused variables warning
它允许您为任何平台使用一个宏(尽管定义可能会有所不同,具体取决于编译器),因此这是一种非常便携的方法,可以表达您对基于C语言的流行编译器的意图。在GCC和Clang上,它等同于将您的第三个示例(#pragma unused(testString)
)包装到宏中。
使用链接答案中的示例:
- (void)testString:(NSString *)testString
{
MONUnusedParameter(testString);
}
我发现这种方法最适合于可移植性和清晰度,与一些相当大的C,C ++,ObjC和ObjC ++代码库一起使用。
答案 1 :(得分:1)
如果您正在使用GCC进行编译,则可以利用属性扩展来设置“未使用”属性。像这样:
int somevar __attribute__((unused));
它也适用于未使用的参数警告(-Wunused-parameter)
要缩短写入时间,我正在使用此宏:
#define _U_ __attribute__((unused))
并声明如下:
int somevar _U_ ;
答案 2 :(得分:-9)
一种方法是在声明变量后无意义地赋值变量例如:
int foo;
foo = 0;
这应该抑制未使用的变量警告。这只是一个毫无意义的任务 但除此之外,我同意ouah,如果你必须从这三种中选择,第一种方法是最可靠的。