2012-09-06 9 views
10

XCodeエディタ内で、次のコード行を/ * * /でコンパイルしてコンパイルできません。私がダウンしてXPathクエリで使用される、より複雑な文字列からこの例を蒸留:​​この文字列をコメント化できないのはなぜですか?

文字列自体は罰金だ:

NSString* s = @"//*//"; 

は私のためにコンパイルされません。

/* 
NSString* s = @"//*//"; 
*/ 

XCodeの4.4。誰かが私がばかではないと確信できるなら、私はレーダーを提出します。

EDIT:素敵SO構文ハイライトもこれで問題を示すことを確認するために...

EDIT:大丈夫、私はアップルにバグレポートを提出しました。ありがとう。

EDIT:以下のPer Robの回答、これはバグではありません:)説明してくれてありがとう、Rob。今は完全に意味をなさない。

+0

これは興味深いことですが、文字列の文字はそれを修正するようですが、それはまさに解決策ではありません。 –

+0

その構文の強調表示が壊れても私にとって驚くべきことではありません。コンパイラがそれを突き詰めたことは私には驚くべきことです。私は構文ハイライターがコンパイラのフロントエンドを共有しなければならないと思います... – TomSwift

+0

rob mayoffが正しいと思うので、前のコメントを削除しました。 – JWWalker

答えて

7

これはコンパイラのバグではありません。ダブルクォート文字"はコメント内に特別な意味を持たないため、プリプロセッサはそれに注意を払わない。プリプロセッサは、*/文字を見てすぐにコメントを終了します。

コードのセクションをコメントアウトする最も良い方法は、各行の先頭に//を入れることです。コメントは次の改行で終了する。// Xcodeには、各行の先頭に//を挿入または削除して、選択した行のコメントやコメントを解除するメニューコマンド(ショートカット:⌘/)があります。

+0

さらに、ブロックをハイライト表示したキーボードショートカット - コマンドスラッシュ。 –

+0

説明をありがとう! – TomSwift

+0

@BenZotto私はそれを書いたとき私は私のiPadにあったので、私はショートカットが分からなかった。念押し有難う。 –

0

コメントを検出して終了します。@"//*//";ブロックコメントのネストを許可するエディタはありません(私はあなたがやっていることではないことを知っていますが、同じ問題です)。 SO上のシンタックスハイライターがどのようにしてネジアップしているかに注目してください。

関連する問題