objective-c - 如何摆脱 Xcode 中的 "unused variable"警告?

我完全理解为什么会出现未使用的变量警告。我不想一般地压制它们,因为它们在大多数情况下都非常有用。但是,请考虑以下(人为的)代码。

NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);

Xcode 报告 saved 是一个未使用的变量,当然它不是。我怀疑这是因为 NSAssert1 是一个宏。 NS_BLOCK_ASSERTIONS 宏是定义的,因此肯定启用了 Objective C 断言。

虽然它不会伤害任何东西,但我觉得它不整洁而且很烦人,我想压制它,但我不知道该怎么做。将变量分配给自身可以消除编译器警告,但如果存在这种情况,我宁愿以“正确”的方式进行操作。

最佳答案

我不确定新的 LLVM 编译器是否仍然支持它,但 GCC 有一个“未使用”属性可以用来抑制该警告:

BOOL saved __attribute__((unused)) = [moc save:&error];

或者(如果 LLVM 不支持上述内容),您可以将变量声明拆分为单独的行,以保证无论宏扩展与否都将“使用”该变量:

BOOL saved = NO;
saved = [moc save:&error];

关于objective-c - 如何摆脱 Xcode 中的 "unused variable"警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5451123/

相关文章:

objective-c - 以编程方式在 UINavigationController 中设置 UI

ios - NSDictionary - 需要检查字典是否包含键值对

objective-c - BOOL 的默认值

objective-c - 有没有办法强制在 NSArray、NSMutableArray 等上输入

ios - 如何删除 UIWebView 的所有 cookie?

objective-c - 如何将 NSString 转换为 std::string?

ios - 以编程方式访问 Assets 目录

ios - 按单元格而不是屏幕分页 UICollectionView

objective-c - 从 NSSet 中获取对象

iphone - Objective-C 将十六进制字符串解析为整数