2014-07-02 10 views
32

Sono nuovo di Xcode, lavorando con Swift, quindi non sono sicuro se ciò che sto decifrando sia in realtà un bug.Xcode Interface Builder - metodo "corretto" per eliminare/rinominare IBoutlet/IBactions cablati

Quando si utilizza il generatore di interfacce e l'editor di assistente, è possibile creare etichette, pulsanti, ecc. E creare Outlets e Action nel codice con un controllo-trascinamento.

Fintanto che sono perfetto, nessun problema. Ma mi sembra di imbattersi in problemi se, per esempio, faccio un mispelling del nome dell'oggetto. O, scelgo presa invece di azione. Non riesco a trovare un modo per fare una correzione che non sembra rovinare totalmente l'IDE. Anche se cancello l'oggetto nell'IB e nel codice, sembra che mi lasci dei problemi quando costruisco. Oppure, se provo a cancellare la riga nel codice e a trascinarla nuovamente, viene creata una nuova riga di codice, ma l'oggetto sembra ora fare riferimento al nuovo nome e al vecchio nome ora mancante.

Ancora, sto lavorando con Swift --- Dal momento che non uso/conosco Objective-C non so se c'è un comportamento simile che usa quel linguaggio.

Apprezzare qualsiasi suggerimento. (Oltre a non utilizzare il generatore di interfacce/storyboard/Swift.)

+0

Per chiarire: qual è il modo migliore per correggere un errore ortografico semplice?(O ho semplicemente scelto un brutto nome, e ora desidero risolvere il problema - quindi il nome non è solo nella connessione, ma in tutto il codice. (Cioè, FInd/Sostituisci che include l'IB stesso?) –

+0

Per rinominare un IBOutlet senza eliminare la connessione prova questo. Http://stackoverflow.com/a/37313505/7250862 –

risposta

53

Utilizzare l'ispettore Connections per interrompere la connessione. Quindi è possibile modificare/eliminare l'oggetto e/o il codice senza doversi preoccupare.

enter image description here

+2

Grazie - Ho aggiornato la mia domanda per chiarire: - qual è il modo migliore per correggere un semplice errore di ortografia (o, meglio ancora, correggere per rendere più significativo il nome di una variabile, che appare più volte nel codice. –

+1

@ user1639473 - Non c'è ricerca/sostituzione che includa l'IB stesso (AFAIK, potrebbero aggiungere tale caratteristica in qualche punto). 1) interrompere la connessione 2) trovare/sostituire nel codice 3) ricreare la connessione. Il passaggio 3 può essere fatto trascinando il controllo dall'oggetto IB alla linea di codice esistente, oppure puoi trascinare (senza controllo) dal cerchio vuoto nel * margine sinistro dell'editor di codice *, all'oggetto * in IB *. – user3386109

+0

Per rinominare un oggetto, utilizzare Modifica> Rifatta> Rinomina (o fare clic con il tasto destro su un oggetto). Inoltre, rinomina qualsiasi riferimento IBOutlet in Interface Builder. –

6

Potete trovare IBOutlets inutilizzati nel file in cui sono dichiarate, cercando nel "grondaia" dell'editor di origine per un "buco non riempito".

enter image description here

8

La risposta accettata va bene, ma ci sono alcuni modi per fare la stessa cosa.

Metodo Uno

clic destro la vista nello storyboard e quindi fare clic sui piccoli x dalla presa di riferimento.

enter image description here

Metodo due

Fare clic destro sul nome della vista nella Struttura documento. Quindi fare clic sulla piccola x tramite la presa di riferimento.

enter image description here

Metodo Tre

Selezionare la vista sullo storyboard e quindi fare clic su l'ispettore Connessioni. Quindi puoi fare clic sulla piccola x per rimuovere un riferimento di uscita.

enter image description here

riferimenti aggiuntivi nel codice

enter image description here

Se hai trovato connessioni di uscita nel codice che non hai aggiungere se stessi vedere this answer.

Problemi correlati