2011-11-19 12 views
9

Tutto l'improvviso Xcode mi dà un errore "inatteso '@' nel programma" all'inizio dell'oggetto @interface.inaspettato '@' nel programma (XCode)

Questo sta accadendo in un gruppo di miei oggetti che sono stati precedentemente lavorando ...

Ecco un esempio (con errori nei commenti)

#import <UIKit/UIKit.h> 
#import "ONCOChordDiamond.h" 
@interface ONCOChordView : UIView //// unexpected '@' in program 
{ 
    NSMutableArray* chordDiamonds;  
    NSUInteger  diamondWidth, diamondHeight; 
} 

@end        /////unexpected '@' in program' 

Perché, dunque, Xcode mi dà questo errore? Sembra un insetto.

risposta

5

siete tra cui il colpo di testa di un file che non è compilato come Objective C.

+0

Ho riscontrato questo problema durante il tentativo di #importare l'intestazione di una NSString-categorty in un file di implementazione Objective-C++ (.mm). Ha funzionato bene tuttavia dopo aver spostato la riga #import nel file di intestazione corrispondente. perché? – arri

5

Verificare la presenza di errori di sintassi nel file ONCOChordDiamond.h. Possono essere evidenziati per te se si esegue Prodotto> Analizza in Xcode.

importazione di un file con errori di sintassi potrebbe portare al compilatore di non essere in grado di analizzare il file corrente in modo corretto, anche se la sintassi del file corrente è corretto.

12

dubito hai ancora il problema, ma se siete controllare il file di intestazione. Ho incollato il codice dal web in una classe e le virgolette non erano lo standard "". I marchi sono stati stilizzati con una citazione di apertura e una citazione di chiusura perché proveniva da una pagina web. La ridigitazione delle virgolette l'ha riparata.

+0

Grazie per aver postato questo commento; Ho faticato con un problema simile per diverse ore e il tuo commento ha risolto il mio problema. Grazie. –

0

Quando incontra questo problema con letterali NSString, controllate di aver utilizzato le virgolette, come richiesto.

(eg. @"myString") 

Se si rileva che le proprie NSString non presentano una sintassi corretta, è possibile verificare i seguenti caratteri offensivi.

" (QUOTATION MARK) 
″ (DOUBLE PRIME) 
“ (LEFT DOUBLE QUOTATION MARK) 
” (RIGHT DOUBLE QUOTATION MARK) 
0

Per quello che vale, ho avuto questo problema e la riga incriminata che è stata identificata era lontana da qualsiasi stringa letterale.

ho fatto notato che alcune delle righe seguenti sono stati colorati in modo strano (di nuovo, nessun stringhe di colpa), così Ho provato mettendo una stringa fasullo letterali nel codice appena prima della riga incriminata.

NSString *whatever = @""; 

A quanto pare, ha convinto il compilatore che la linea non avvitato era, in modo che poi compilato bene senza lamentarsi. Dopo quella build, sono stato in grado di eliminare la variabile stringa fasulla e andare avanti con la mia vita.

0

Ho avuto un problema simile ed è stato perché l'ultima citazione era scappata. Stavo usando una stringa multilinea con un \ "terminato per mangiare il carattere di fine riga.

[ string appendFormat:@"\n\ 
     vec4 position;\n\ 
     vec4 inputTextureCoordinate;\n\" ]; 

Dopo aver rimosso il sbagliata "\" che ha mangiato l'ultima citazione ha funzionato.