我喜欢使用-Weverything
来编译器捕获所有可能的警告,但有时我会收到警告,我不想修复。如何在发生这些特定警告时手动禁用它们?
答案 0 :(得分:30)
您可以使用-Wno-XYZ
禁用个别警告,XYZ是要禁用的警告功能的名称。
答案 1 :(得分:16)
在XCode 5中,我必须构建,然后右键单击某个问题并选择“在日志中显示”,然后将“中间窗格”选项卡设置为“全部”,以便在日志中显示问题。
然后点击右边的“汉堡”图标并向下滚动我终于得到了警告的确切描述。
/.../SettingsViewController.m:91:58: warning: creating selector for nonexistent method 'setSegueIdentifier:' [-Wselector]
[segue.destinationViewController performSelector:@selector(setSegueIdentifier:)
所以在我的情况下,以下工作就完成了。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wselector"
...
#pragma clang diagnostic pop
答案 2 :(得分:4)
我刚刚进入一个网站,其中列出了所有Clang警告和禁用它们的标志(使用#pragma clang diagnostic ignored "-Wxyz"
):
http://goo.gl/hwwIUa(当您访问它时,您就会理解为什么我缩短了网址。)
答案 3 :(得分:1)
我猜你知道如何更新构建设置以启用/禁用单个警告,并希望在代码中禁用警告。这是一个例子:
#ifdef TESTFLIGHT_USERTRACKING
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wdeprecated-implementations"
[TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]];
#pragma clang diagnostic pop
#endif