2011-12-17 15 views
16

A volte ho un'interfaccia che implementa diversi protocolli e ricevo un avviso da XCode che la mia implementazione è incompleta.Come determinare quali metodi non sono implementati quando XCode ha avvertenze

Esiste un modo semplice per determinare quali metodi sono "richiesti" ma implementati (senza dover implementare in modo fittizio tutti i metodi non opzionali dai file di intestazione del protocollo)?

Ad esempio, ho un avvertimento su questa interfaccia ma non voglio dover scavare attraverso tutti i protocolli .. ovviamente XCode sa che alcuni sono mancanti, perché non può semplicemente dire quali sono!

@interface KTThumbsViewController : UIViewController <KTThumbsViewDataSource, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIAlertViewDelegate> 

XCode 4

enter image description here

+1

dice 'Metodo qui dichiarato 'Se si fa clic su quello. ti mostrerà la dichiarazione del metodo. –

risposta

6

Premere Alt e fare clic sul protocollo, Xcode vi mostrerà dove si è definito in modo da poter dare un'occhiata al file di intestazione. In alternativa nella scheda "Problemi" ti mostrerà quali metodi non hai ancora implementato.

+0

"Non voglio scavare attraverso tutti i protocolli". Il navigatore dei problemi dice solo "Implementazione incompleta" - non elenca i metodi che non sono implementati - vedi screenshot. –

+0

@ P1X3L5 amico, controlla il tuo OWN screenshot, ti mostra ciò che non hai ancora implementato, ci sono 2 elementi nella lista lì per quel file sorgente che mostra il problema SAME –

+2

Mi dice ** QUALCOSA ** manca, ma non è quello che è - questa è la radice della mia domanda originale. Si è rivelato essere un metodo chiamato - (void) didAddPhoto: che non è menzionato da nessuna parte nello screenshot.Sì, mi dice quale protocollo mi manca un impl (e non me ne sono accorto prima, quindi grazie per averlo indicato), ma questo da solo può avere un valore piuttosto limitato - Sto cercando un elenco di metodi non implementati senza dover andare avanti e indietro tra la classe mt e la definizione del protocollo. –

8

Non ho trovato la risposta qui, sfortunatamente. Ma un po 'più di scavo ha trovato una risposta, nel navigatore Issue in Navigator View.

Aprire la vista Navigator tramite i pulsanti Vista a in alto a destra:

View Navigator toggle button

Aprire quindi il navigatore Problema tramite il tasto triangolo/esclamativo in alto a sinistra:

enter image description here

Se si espande il problema semantico "implementazione incompleta" con il piccolo triangolo a sinistra, è possibile visualizzare i dettagli del reclamo di XCode.

1

Come un follow-up a questo

volte "Attuazione incompleta" significa veramente "Mancata corrispondenza tra il prototipo di funzione e la funzione implementata".

Per esempio, se nel file .h hai avuto questo:

- (NSTimeInterval) SayDigit: (int) score; 

Ma nel file .m si avuto questo:

- (NSTimeInterval) SayDigit: (int) digit: (NSTimeInterval) time 

Si otterrebbe l'avviso "incompleta attuazione" .

Problemi correlati