2011-06-02 96 views
18

(我找到了答案,這在其他地方一邊寫的問題,但我想如果我的貼吧,因爲我不能在這裏找到任何東西它可能是幫助他人。)您可以在Objective-C中添加自定義編譯器警告嗎?

我要標記的方法是需要更好的錯誤處理。我希望他們顯示爲編譯器警告,以便其他開發人員(可能負責該區域)會注意到,並希望能夠解決他們的閒暇時間。

(其他辦法歡迎,我看着__attribute__((warning))但不能讓它開始工作。)

回答

43

這是很容易做到:

#warning Needs better error handling, please. 
+8

你也可以使用'#ERROR消息「觸發構建錯誤。 – ughoavgfhw 2011-06-02 20:22:15

+2

這不是一個好主意,因爲它會警告構建的常規部分,而不是可能出現錯誤的跡象。您最好使用// FIXME或// TODO,許多IDE會自動選取,以標記需要工作的代碼段。 – 2011-06-02 23:50:31

+2

@jshier我認爲它是開發者錯誤(或者至少我只會標記那些我認爲是開發人員錯誤的人)。這個想法是幫助其他人(和我自己)更好地處理錯誤,以便進行正確的事情。這些警告在被解決時會消失,我認爲他們需要解決。我不認爲// FIXME和// TODO足夠強大。 – zekel 2011-06-08 18:10:13

2

選擇目標,然後選擇Build階段選項卡。在窗口的底部,您會看到一個選項,在屏幕底部添加構建階段。您可以使用添加構建階段添加運行腳本構建階段。運行腳本選項允許您選擇一個shell並針對該項目執行任意代碼。

以警告TODO & FIXME評論,使用/ bin/sh的作爲外殼,並在此腳本粘貼:

TAGS="TODO:|FIXME:" 
echo "searching ${SRCROOT} for ${TAGS}" 
find "${SRCROOT}" \(-name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/" 

來源:Generate Xcode Warnings from TODO Comments