2012-05-02 9 views
9

La mia app per iOS funzionava e all'improvviso vedo questo errore: "Impossibile combinare con lo specificatore di dichiarazione" nome-tipo "precedente". Qualche idea su cosa potrebbe causare questo errore?non può combinare con l'identificatore di dichiarazione "nome-tipo" precedente

#import "SalesAPIManager.h" 

@interface SalesDelegate : NSObject { // error points to this line 
    __unsafe_unretained id<SalesAPIManagerDelegate> delegate_; 
} 


@property (unsafe_unretained, nonatomic) id<SalesAPIManagerDelegate> delegate; 


- (id)initWithDelegate:(id<SalesAPIManagerDelegate>)delegate; 


@end 
+0

Inserire il codice che indica l'errore. –

+0

non so quale fosse il problema, ma la pulizia del progetto lo ha risolto per me. – pshah

+0

Questo è un problema raro, esistono pochissime informazioni al riguardo e non ci sono risposte chiare. La risposta di @pshash non funziona in tutte le istanze. –

risposta

3

Ho avuto lo stesso problema. Risulta che ho avuto un refuso nel mio file main.m. Una volta chiarito, questo errore è andato via.

+0

Anch'io ho avuto questo problema - il modo in cui è arrivato è ancora un mistero per me, perché non ho mai aperto il file main.m. –

21

Allo stesso modo ho avuto un errore di battitura in un file casuale nel progetto. Era solo un semplice testo che è stato accidentalmente posizionato prima di un commento. Il mio suggerimento di risolvere/trovare sarebbe di mettere un; appena prima dell'istruzione che viene contrassegnata. Ciò ha quindi richiamato un avviso sul testo errante quando ho compilato.

+0

molto strano! Ma ha funzionato la soluzione interessante –

+0

, ma la mia costruita dopo aver aggiunto il punto e virgola! –

+0

+1: ottimo trucco per isolare un tocco di tastiera accidentale – capikaw

1

Ho lo stesso problema. E alla fine lo aggiusto dopo aver pulito un po 'di junk text nella parte inferiore del mio file .h. puoi provare

4

È uno degli svantaggi di Xcode. Xcode è uno dei peggiori IDE di sempre, Apple sta cercando di migliorare ogni aggiornamento. Ma questo problema si solleva quando aggiungi "Qualche parola" in alcuni punti che il compilatore di Xcode non sta guardando.

Il mio caso è stato come in immagine:

enter image description here

Ho dimenticato di cancellare la parola RESideMenu in AppDelegate.h e la cosa strana che Xcode accetta il codice fino Build e quando spara errore esso la raggi in un'altra classe non correlata.

+0

Grazie @ Abo3atef – mgyky

0

L'ho preso in un file di intestazione quando in realtà l'errore era in .cpp. Si scopre che ho avuto un metodo cercando di restituire un bool in modo impreciso:

return (x == 1 && y == 2); 

che si scopre non funziona, ma Xcode mi ha detto in questo modo molto oscura.

Non so se questo aiuta, ma è un altro esempio in un deserto apparente di loro.

1

Ho visto questo errore quando c'era un codice incompleto nel mio file che avevo dimenticato di eliminare. Il compilatore ha indicato l'errore all'inizio di un metodo al tipo restituito, quindi ho dedicato molto tempo alla dichiarazione del metodo e alla chiamata. Risolto il errore di battitura sbagliato era sopra il metodo. poiché non c'era ";" il compilatore poteva solo dire che la parola chiave void era fuori posto.

Problemi correlati