2009-10-30 213 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?