我完全理解为什么会出现未使用的变量警告。我不想在一般情况下抑制它们,因为它们在大多数情况下都非常有用。但是,请考虑以下(人为设计的)代码。
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
Xcode报告saved
是一个未使用的变量,当然它不是,我怀疑这是因为NSAssert1
是一个宏。没有定义NS_BLOCK_ASSERTIONS
宏,因此确定启用了Objective C断言。
虽然它不会伤害任何东西,但我发现它不整洁和恼人,我想抑制它,但我不确定如何做到这一点。将变量赋值给自身可以消除编译器警告,但如果存在这样的情况,我宁愿用“正确”的方式。
发布于 2011-03-28 02:06:14
我不确定在新的LLVM编译器中是否仍然支持它,但是GCC有一个“未使用”属性,您可以使用它来抑制该警告:
BOOL saved __attribute__((unused)) = [moc save:&error];
或者(以防LLVM不支持上述操作),您可以将变量声明拆分为单独的行,以保证无论宏是否展开,变量都将被“使用”:
BOOL saved = NO;
saved = [moc save:&error];
发布于 2012-05-14 14:40:48
使用Xcode4.3.2,并发现这似乎是有效的(较少编写)
BOOL saved __unused;
发布于 2011-03-28 03:35:29
在Xcode中,您可以为“未使用的变量”设置警告。转到目标的“构建设置”,并使用单词“未使用”进行筛选。
截图如下:
我建议您只为Debug更改它。这样你就不会错过你的发布版本中的任何东西。
https://stackoverflow.com/questions/5451123
复制相似问题