2012-09-06 2 views
10

Non riesco a commentare e compilare la seguente riga di codice con/* * /, all'interno dell'editor XCode. Ho distillato questo esempio giù da una stringa più complesso utilizzato in una query XPath:Perché non posso commentare questa stringa?

la stringa stessa sembra bene:

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

non verrà compilato per me:

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

XCode 4.4. Presenterò un radar se qualcuno può confermare che non sono stupido.

EDIT: bello vedere che l'evidenziatore SO sintassi presenta anche un problema con questo ...

EDIT: va bene, ho presentato un bug report con Apple. Grazie.

EDIT: la risposta di Per Rob sotto, NON è un errore :) Grazie per averlo spiegato, Rob; ha perfettamente senso ora.

+0

Questo è interessante, \ i caratteri nella stringa sembrano risolvere il problema ma non è esattamente una soluzione ... è una specie di dolore. –

+0

Le interruzioni di evidenziazione della sintassi non mi sorprendono. Che il compilatore si sia soffocato su di esso è sorprendente per me. Immagino che l'evidenziatore della sintassi debba condividere il front-end del compilatore ... – TomSwift

+0

Penso che Rob Mayoff abbia ragione, quindi ho rimosso il mio commento precedente. – JWWalker

risposta

7

Questo non è un bug del compilatore. Il carattere di doppia citazione " non ha alcun significato speciale all'interno di un commento, quindi il preprocessore non presta alcuna attenzione ad esso. Il preprocessore termina appena il commento non appena vede i caratteri */.

Il modo migliore per commentare una sezione di codice è inserire // all'inizio di ogni riga. Un commento // termina alla successiva nuova riga. Xcode ha un comando di menu (collegamento: 23 /) che commenta o rimuovi le righe selezionate inserendo o rimuovendo // all'inizio di ogni riga.

+0

E persino una scorciatoia da tastiera-- barra di comando con un blocco evidenziato. –

+0

Grazie per la spiegazione! – TomSwift

+0

@ BenZotto Ero sul mio iPad quando l'ho scritto, quindi non ero sicuro della scorciatoia. Grazie del promemoria. –

0

Rileva e termina il commento in @"//*//"; Non conosco alcun editor che consenta l'annidamento di commenti di blocco (so che non è quello che si sta facendo, ma lo stesso problema). Notare come persino l'evidenziatore di sintassi su SO si rovina.