我完全理解为什么会出现未使用的变量警告.我不想一般地压制它们,因为它们在大多数情况下非常有用.但是,请考虑以下(人为)代码.
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
Run Code Online (Sandbox Code Playgroud)
Xcode报告这saved是一个未使用的变量,当然它不是.我怀疑这是因为NSAssert1是一个宏.该NS_BLOCK_ASSERTIONS是宏没有定义,那么目标C断言肯定启用.
虽然它没有伤害任何东西,但我发现它不整洁且烦人,我想压制它,但我不知道该怎么做.将变量分配给自己可以摆脱编译器警告,但如果存在这样的事情,我宁愿以"正确"的方式进行.
是否可以在Objective-C对象方法参数上使用__unused属性宏?我已经尝试将它放在参数声明周围的各个位置,但它会导致编译错误或者似乎被忽略(即编译器在使用-Wall -Wextra进行编译时仍会生成未使用的参数警告).
有没有人能够使用它?它只是不支持Objective-C吗?作为参考,我目前正在使用Apple的GCC 4.0.1版本.