我使用Xcode 4,定義了一個簡單的類接口,並將NSTableViewDelegate和NSTableViewDataSource協議添加到接口定義中。即, @interface富:NSObject的< NSTableViewDelegate,NSTableViewDataSource>當協議方法沒有被指定時,爲什麼我不會收到警告?
在我的構建設置,我已經證實,選擇「未完成的Objective-C協議」警告啓用(用於調試/任何建築等),我應該得到NSTableViewDataSource協議所需的非可選方法的編譯時警告。然而,我根本沒有得到任何警告,但是在運行時我看到日誌中的消息中沒有定義方法。
任何人都知道爲什麼?
那麼至少委託協議是非正式的,所以不實施的方法應該仍然讓代碼工作,這意味着你不必實現,這就是爲什麼你不會得到這樣的警告。 – 2011-03-22 22:45:41
某些方法是必需的---這就是爲什麼我應該在編譯時應該得到警告,而不是在運行時。 我不喜歡只是得到運行時警告,如果我可以有編譯時警告。所以問題是這是否是一個xcode4錯誤或者是否有其他事情正在阻止編譯時產生警告。 – David 2011-03-23 01:52:20
你可以很容易找到:在XCode3中試試這個。 – 2011-03-23 08:17:24