XCodeでFIXME
、TODO
、???
および!!!
タグを使用し始めましたが、タグがあるとタグを認識しないのが痛い関数内。タグは特定の関数の外でのみ認識されます。
これらのタグを関数内で認識させるにはどうすればよいですか(バグが存在するため)。
2016年2月2日編集
Xcodeが// MARK:、// TODO:および// FIXME:ランドマークをサポートして、コードに注釈を付け、ジャンプバーにリストするようになりました。
これらの特別なマークアップ(および実際に自分で指定したマークアップ)を見つけるには、検索ナビゲーターを使用して次の文字列を入力し、[プロジェクト内、正規表現「...」に一致、大文字と小文字を区別しない」を選択します。
(//FIXME|//!!!|//\?\?\?|//TODO)
これにより、プロジェクトでこれらすべての特別なマークアップが検索されます。必要なマークアップを追加することもできます。 "// REVIEW:次のコードを確認してください"。これは、次の検索文字列になります。
(//FIXME|//!!!|//\?\?\?|//TODO|//REVIEW)
ワークスペースに、検索ナビゲーターを常に開いたタブを作成し、この文字列を入力しました。残念ながら、XCodeは検索ボックスからこの文字列を削除することがあります。そのため、必要なときにいつでもコピーして貼り付ける必要があります。
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/"
Benjamin Ragheb の功績です。
FIXME:、TODO:、???:および!!!:は、関数の内外で4.3.3で機能します。
ダブルスラッシュの前後には任意の数の空白を含めることができますが、大文字を使用し、タグの後にコロンを付ける必要があります。
明確にするために-これらすべての作業:
// FIXME: This works.
//TODO: This works.
// !!!: Working.
// // //???: Works as well.
このXcodeプラグインはどうですか? -> https://github.com/trawor/XToDo
xCode 6ベータ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/"
Swift 4を使用してxCode 9.3で適切に動作します
開発を続けたいが、アプリが残り物でリリースされないようにする必要がある場合//FIXME:
代わりに次のことができます。
これをヘッダーのどこかに定義します:
#if DEBUG
#define FIXME 0;
#endif
この定義により、アプリをデバッグ用にビルドできますが、リリース用にアーカイブすることはできません。
これで、コメントを使用した場所ならどこでもFIXME
を使用できます。
例:NSNumber *magicNumber = 7; FIXME