XCodeで、、、およびタグを使用し始めましたが、関数内にあるときにタグを認識しないのFIXME
はTODO
苦痛???
です。!!!
タグは、特定の関数の外部でのみ認識されます。
これらのタグを関数内で認識させるにはどうすればよいですか(これはバグがある場所です)?
xcode 4.1では(これが以前のバージョンで機能するかどうかはわかりません)私は次のように書いています
#warning TODO: fix this later...
コンパイル警告を取得する、または
#error FIXME: fix now!
コンパイルエラーが発生します。
また、これらをコードスニペットライブラリに追加して、ToDoを簡単に追加できるようにします。
回避策は、それらを警告としてマークするビルドスクリプトを使用することです。
KEYWORDS="TODO|FIXME|\?\?\?:|\!\!\!:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | \
xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | \
perl -p -e "s/($KEYWORDS)/ warning: \$1/"
BenjaminRaghebの功績。
2016年2月2日編集
Xcodeは、// MARK:、// TODO:、および// FIXME:ランドマークをサポートして、コードに注釈を付け、ジャンプバーに一覧表示するようになりました。
これらの特別なマークアップ(および実際に自分で指定したマークアップ)を見つけるには、検索ナビゲーターを使用して次の文字列を入力し、[プロジェクトで、正規表現に一致する" ... "、大文字と小文字を区別しない"を選択します。
(//FIXME|//!!!|//\?\?\?|//TODO)
これにより、プロジェクトでこれらすべての特別なマークアップが検索されます。「//レビュー:次のコードをレビューしてください」など、任意のマークアップを追加することもできます。これは、次の検索文字列になります。
(//FIXME|//!!!|//\?\?\?|//TODO|//REVIEW)
ワークスペースにタブを作成しました。このタブには、検索ナビゲーターが常に開いていて、この文字列が入力されています。残念ながら、XCodeはこの文字列を検索ボックスから削除することがあるため、必要なときにいつでもコピー&ペーストできるようにしておく必要があります。
FIXME:、TODO:、???:、および!!!:は、関数の内外で4.3.3で機能します。
二重スラッシュの前後に任意の数の空白を含めることができますが、大文字を使用し、タグの後にコロンを付ける必要があります。
明確にするために-これらすべての作業:
// FIXME: This works.
//TODO: This works.
// !!!: Working.
// // //???: Works as well.
このXcodeプラグインはどうですか?-> https://github.com/trawor/XToDo
xCode 6 beta 4は、MARK、TODO、およびFIXMEランドマークをサポートする必要があります。
Xcodeは、// MARK:、// TODO:、および// FIXMEランドマークをサポートして、コードに注釈を付け、ジャンプバーに一覧表示するようになりました。(14768427)!
ただ注意が必要ですが、TODO:はどのような種類のブロック内でも機能しないことに気づきました。ブロックの真上または真下に移動するだけです。
これは私が追加のビルドフェーズとして使用するスクリプトです。Carthageを介してプルされたファイルを除外することに注意してください(「あなたの」コードではないため、これらを取得するのは非常に面倒です):
TAGS="WARNING:|TODO:"
echo "searching ${SRCROOT} for ${TAGS}"
find "${SRCROOT}" \( -name "*.swift" \) -not -path "${SRCROOT}/Carthage/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/"
Swift4を使用するxCode9.3で適切に動作します
開発を継続したいが、アプリが残り物でリリースされないようにする必要がある場合は//FIXME:
、代わりに次のことを行うことができます。
これをヘッダーの1つで定義します。
#if DEBUG
#define FIXME 0;
#endif
この定義により、アプリはデバッグ用にビルドできますが、リリース用にアーカイブされることはありません。
FIXME
これで、コメントを使用した場所ならどこでも使用できます。
元:NSNumber *magicNumber = 7; FIXME