2012-04-30 10 views
25

Ho ricevuto questo errore in diverse occasioni e non sono chiaro su quale sia la causa dell'errore in generale. Dopo aver cercato per oltre un'ora di overflow dello stack e google, non ho ancora una risposta. Qualcuno potrebbe aiutare?Nessun @interface visibile per

Ho visto diverse risposte specifiche ma nulla che dice perché l'errore si verifica, solo "fai x" o "fai y".

Non ho ancora incluso il codice perché voglio sapere il motivo per cui questo errore si verifica in generale in modo da poter correggere il mio codice in futuro ogni volta che ottengo questo errore.

+0

Non hai incluso il codice!? quale errore ottieni? come ti aspetti che venga risolto? Dubito che ci siano molte persone psichiche qui @ SO. – ant

+5

L'errore che viene visualizzato è "Nessuna interfaccia @ visibile per ...". L'ho incluso nel titolo ma probabilmente dovrei averlo incluso nella descrizione. –

risposta

11

Ci sono molte ragioni per cui potrebbe accadere, ma in generale si dice che alla riga di codice che segnala, non vede alcuna prova che il selettore a cui si fa riferimento sia nell'interfaccia del tipo che pensa l'oggetto ha.

In questo esempio,

No visible interface error

hanno dichiarato operandStack con il tipo sbagliato.

In questo

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=3312

avevano un errore di battitura nel nome del selettore

+0

Grazie per la semplice risposta, sono molto nuovo. Come si aggiunge un selettore all'interfaccia? –

+1

In questo contesto è solo un altro nome per messaggio/metodo. –

+0

L'obiettivo di base-C può essere trovato qui http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Introduction/introObjectiveC.html#//apple_ref/doc/uid/TP30001163-CH1- SW2 –

2

C'è qualche possibilità si è in Xcode 4.2 (o meno), l'esecuzione di codice che è stato scritto su Xcode 4.3? In 4.3+ Xcode non richiede di dichiarare metodi privati ​​a tutti, si presuppone solo che i metodi scritti nel file di implementazione (senza dichiarazioni nell'interfaccia) siano privati. Ma in Xcode < = 4.2, si genera un errore e tali metodi devono essere almeno dichiarati privatamente

+2

Sto usando 4.3.2. È bello saperlo. Grazie! –

+2

Il compilatore pre-Xcode 4.2 consentirà inoltre di utilizzare metodi non dichiarati senza errori, a condizione che siano definiti nel file prima del loro utilizzo. –

+0

Grazie per il chiarimento @JacquesCousteau, quello era il mio intento originale.Ho usato dichiarato e definito in modo intercambiabile quando sono cose diverse. – JoeCortopassi

2

Ho appena avuto questo problema; il mio è stato causato da me impostando il metodo come metodo di classe piuttosto che come metodo di istanza. Molto sciocco.

1

Un altro errore comune ist dimenticare di scrivere [someInstance setSomeValue: 3]; invece di [someInstance someValue: 3] (< - errato). Quello che mi è successo.

2

Un altro motivo può essere quando si utilizzano le categorie nelle biblioteche e non è stata impostata -ObjC (o -all_load) nei Altre Bandiere Linker

Problemi correlati