2009-10-30 98 views
1

有什么办法可以抑制编译器警告吗?抑制Objective-C警告

感谢

+0

您正在使用哪种Objective-C编译器? – Artelius 2009-10-30 11:16:31

+9

您可以编辑您的源代码,以便编译器不再抱怨。 – mouviciel 2009-10-30 11:33:08

+2

通过修复代码来抑制警告。基本上没有理由为什么工作代码会产生警告。 – bbum 2009-10-30 15:25:31

回答

4

如果你不希望看到他们在Xcode中,您可以在源窗口上单击鼠标右键打压他们,并选择信息泡泡|仅错误。该行旁边仍会有一个小警告符号,但警告文本将不会显示。

通过打开项目信息窗口并转到构建选项卡,可以防止编译器生成警告。有一个禁止所有警告复选框GCC##下 - 警告部分。看起来它会做你想做的。

如果你在命令行建设,你可以尝试这些开关:

-GCC_WARN_INHIBIT_ALL_WARNINGS -w 

我从来没有尝试过的交换机。他们被列在项目信息窗口的帮助区域。

但是,最好的解决方案,当然,是要弄清楚为什么你的代码有警告,并修复它。

2

是的,我所有的固定的警告,但如果你有,你想有10.4及以上工作的应用程序,并在一些地方利用方法/消息的10.6,但仍工作在10.4?

例如,NSDate.addTimeInterval已被弃用,因此10.6,最好使用NSDate.dateByAddingTimeInterval。

从我可以工作了,不管我做什么,我要与一个或另一个警告告终。如果我添加代码:

if ([NSDate instancesRespondToSelector:@selector(dateByAddingTimeInterval)]) { 
    timer = [[NSTimer alloc] initWithFireDate:[nowDate dateByAddingTimeInterval:10.0] interval:0.05 target:self selector:@selector(fade:) userInfo:nil repeats:YES]; 
} else { 
    timer = [[NSTimer alloc] initWithFireDate:[nowDate addTimeInterval:10.0] interval:0.05 target:self selector:@selector(fade:) userInfo:nil repeats:YES]; 
} 

的我上if语句上半年警告如果SDK版本是10.5,而上下半场警告如果SDK版本是10.6。

如果我知道代码是好的,是有一个编译或类似的结构,让我来告诉编译器,有问题的行是OK?