41

XCodeで、、、およびタグを使用し始めましたが、関数内にあるときにタグを認識しないのFIXMETODO苦痛???です。!!!タグは、特定の関数の外部でのみ認識されます。

これらのタグを関​​数内で認識させるにはどうすればよいですか(これはバグがある場所です)?

4

9 に答える 9

51

xcode 4.1では(これが以前のバージョンで機能するかどうかはわかりません)私は次のように書いています

#warning TODO: fix this later...

コンパイル警告を取得する、または

#error FIXME: fix now!

コンパイルエラーが発生します。

また、これらをコードスニペットライブラリに追加して、ToDoを簡単に追加できるようにします。

于 2011-09-03T16:18:44.577 に答える
37

回避策は、それらを警告としてマークするビルドスクリプトを使用することです。

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の功績。

于 2011-06-04T17:27:21.557 に答える
20

2016年2月2日編集

Xcodeは、// MARK:、// TODO:、および// FIXME:ランドマークをサポートして、コードに注釈を付け、ジャンプバーに一覧表示するようになりました。


これらの特別なマークアップ(および実際に自分で指定したマークアップ)を見つけるには、検索ナビゲーターを使用して次の文字列を入力し、[プロジェクトで、正規表現に一致する" ... "、大文字と小文字を区別しない"を選択します。

(//FIXME|//!!!|//\?\?\?|//TODO)

これにより、プロジェクトでこれらすべての特別なマークアップが検索されます。「//レビュー:次のコードをレビューしてください」など、任意のマークアップを追加することもできます。これは、次の検索文字列になります。

(//FIXME|//!!!|//\?\?\?|//TODO|//REVIEW)

ワークスペースにタブを作成しました。このタブには、検索ナビゲーターが常に開いていて、この文字列が入力されています。残念ながら、XCodeはこの文字列を検索ボックスから削除することがあるため、必要なときにいつでもコピー&ペーストできるようにしておく必要があります。

于 2012-07-05T19:44:42.340 に答える
8

FIXME:、TODO:、???:、および!!!:は、関数の内外で4.3.3で機能します。

二重スラッシュの前後に任意の数の空白を含めることができますが、大文字を使用し、タグの後にコロンを付ける必要があります。

明確にするために-これらすべての作業:

//          FIXME: This works.
  //TODO: This works.
    //                  !!!: Working.
// // //???: Works as well.
于 2012-07-11T08:38:37.070 に答える
4

このXcodeプラグインはどうですか?-> https://github.com/trawor/XToDo

于 2013-12-20T07:44:47.920 に答える
4

xCode 6 beta 4は、MARK、TODO、およびFIXMEランドマークをサポートする必要があります。

Xcodeは、// MARK:、// TODO:、および// FIXMEランドマークをサポートして、コードに注釈を付け、ジャンプバーに一覧表示するようになりました。(14768427)!

于 2014-07-23T08:26:25.467 に答える
2

ただ注意が必要ですが、TODO:はどのような種類のブロック内でも機能しないことに気づきました。ブロックの真上または真下に移動するだけです。

于 2013-10-25T03:09:52.820 に答える
0

これは私が追加のビルドフェーズとして使用するスクリプトです。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で適切に動作します

于 2018-04-23T09:26:12.503 に答える
0

開発を継続したいが、アプリが残り物でリリースされないようにする必要がある場合は//FIXME:、代わりに次のことを行うことができます。

これをヘッダーの1つで定義します。

#if DEBUG
#define FIXME 0;
#endif

この定義により、アプリはデバッグ用にビルドできますが、リリース用にアーカイブされることはありません。

FIXMEこれで、コメントを使用した場所ならどこでも使用できます。

元:NSNumber *magicNumber = 7; FIXME

于 2020-01-31T00:59:13.167 に答える