以下代码在块中的赋值操作上返回表达式未使用警告。代码不是很实用,但在排除部分中有更多代码,并且代码必须在特定队列上运行。
__block NSNumber *pageId=nil;
dispatch_sync(_myDispatchQueue, ^{
int val;
//... code generates an int and puts it in val
pageId = [NSNumber numberWithInt:val];
}];
//pageId used below
如何摆脱此错误?
答案 0 :(得分:47)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-value"
pageId = [NSNumber numberWithInt:val];
#pragma clang diagnostic pop
答案 1 :(得分:2)
注意我从Intrubidus那里得到了这个,但是我想要更多的信息,所以在试验之后我在这里为下一个人记录了我的发现。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-value"
pageId = [NSNumber numberWithInt:val];
#pragma clang diagnostic pop
仅适用于区间忽略和弹出区域。 “-Wunused-value”不会抑制未使用的变量。
这就是抑制未使用的变量的方法:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
int i = 0;
#pragma clang diagnostic pop
此外,没有推送和弹出,如下所示:
#pragma clang diagnostic ignored "-Wunused-value"
pageId = [NSNumber numberWithInt:val];
#pragma后,该文件中的任何位置都会忽略警告类型。这似乎只适用于相关文件。
希望你发现这很有用,
- 追逐