Il completamento automatico di Xcode 7.3 è così frustrante


96

C'è un nuovo completamento automatico in Xcode. Probabilmente potrebbe essere utile perché controlla non solo l'inizio dei nomi, ecc. Ma ho scoperto che molto spesso non trova affatto un nome di classe o un nome const, ecc. Ho bisogno di digitare il nome intero da solo. Ho scoperto che mi rende la vita più difficile e la programmazione richiede più tempo. C'è un modo per passare al vecchio modo in cui funzionava?


Gli utenti che hanno affrontato 7.3 come beta se ne sono lamentati per settimane: stackoverflow.com/questions/35586056/…
matt

puoi scaricare manualmente xcode più vecchio su developer.apple.com/downloads , ad esempio xcode 7.2.1: adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
George

43
Non riesco a credere che abbiano pubblicato una versione principale con qualcosa di importante come il completamento automatico rotto. È come se nessuno in Apple usasse effettivamente Xcode per lo sviluppo.
soleil

3
Questo sta colpendo così gravemente la mia produttività che sto tornando a Xcode 7.2.1 in modo da poter effettivamente tornare alla normale velocità di sviluppo. Sono più del solito infastidito con Apple con questo. Non solo mi hanno costretto a El Capitan per eseguire Xcode 7.3, ma quando ci arrivo scopro che la terra promessa è lontana dall'essere una realtà. Testano questa roba? Tipica mancanza di rispetto per i "loro" sviluppatori, come sempre.
Quintin Willison

2
Xcode 7.3.1 è stato rilasciato ieri, dopo i miei test, questo bug esiste ancora ... Ma Apple afferma di risolverlo in 7.3.1.
Vincent Sit

Risposte:


18

Xcode 7.3.1

  1. In Xcode> Preferenze> Modifica del testo

    deseleziona Enable type-over completions

  2. riavvia Xcode


14

Sembra che deselezionare la casella di controllo "Abilita completamenti di sovrascrittura" in XCode -> Preferenze -> Modifica del testo fa il trucco. Almeno nel mio caso il completamento automatico è ricaduto in una sorta di vecchio modo, quindi potrebbe completare automaticamente il nome della classe che dovevo digitare manualmente prima.


Ho provato, ma ancora non completa correttamente i nomi delle classi.
Erik B

Non vedo alcuna differenza. Ancora bisogno di finire i nomi personalizzati ... :(
matthewfx

Per fare questo lavoro devi attivare l'indicizzazione. Per attivare l'indicizzazione non puoi farlo da Xcode. Devi eseguire la seguente riga in una shell. Quindi riavvia Xcode. % Default delete com.apple.dt.Xcode IDEIndexDisable vedere stackoverflow.com/questions/7328041/...
andrewz

5

Questa non è affatto una soluzione adeguata, MA mi ha permesso di mantenere (a malapena) la mia sanità mentale negli ultimi giorni: dopo ogni build, devi cestinare la tua cartella Derived Data. Puoi trovare questa cartella in Xcode > Preferences > Locations > Derived Data. Basta eliminare il tutto e inizierà un passaggio di reindicizzazione che dovrebbe ripristinare la corretta funzionalità di completamento automatico. Sfortunatamente, ho scoperto che una volta creato, il comportamento del completamento automatico ritorna al suo stato non funzionante.


4

basta aprire la cartella dei dati derivati ​​da Xcode ed eliminare la cartella

/Users/yourUserName/Library/Developer/Xcode/DerivedData

quindi riavvia Xcode, ora il completamento automatico funziona come un fascino


Questo ha funzionato per me, non so perché è valutato negativamente.
Mike M

1

Ho l'impressione che alcune "parti" del completamento automatico falliscano semplicemente dopo un po '. Uso per riavviare il Mac per farlo tornare a funzionare. Ma a volte fallisce di nuovo abbastanza presto. Forse la risposta di @Alex Bykov combinata con un riavvio farà il trucco.

Comunque: l'auto-completamento di Xcode è sempre stato una schifezza. AppCode utilizzato per ottenerlo molto meglio. Purtroppo non ancora con swift.


1

Xcode chiuso, Xcode aperto, lascialo indicizzare, ha funzionato.


1
Purtroppo è l'unica opzione.
thedp

0

non trova un nome di classe

Per aggirare il problema , puoi provare a premere Comando + Maiusc + K e Comando + B più volte , funziona temporaneamente.


1
Forse Cmd + Shfit + K (pulita), Cmd + Shfit + Opt + K (Cartella generazione pulita), chiusi Xcode, cancellati ~/Library/Developer/Xcode/DerivedData, riavviati OS X, e ancora non ha aiutato. :-)
TaylanUB

1
Abbiamo un progetto piuttosto grande che richiede 20 minuti per essere compilato da zero, quindi pulire e ricostruire non è un'opzione per noi ...
longbow

0

Xcode 7.3.1

Condividerò un altro possibile motivo, che dopo un paio di giorni abbiamo scoperto. Abbiamo più schemi e in uno di essi l' intestazione di bridging importava un file che non esisteva più. Quindi, non si è interrotto durante la compilazione e l'esecuzione (l'intestazione appartiene a un altro schema) ma ha causato l'interruzione del completamento automatico (non è stato possibile trovare alcuna classe oggettiva-c).

Spero possa aiutare qualcuno!


0

Dopo aver provato diversi metodi:

  • Elimina dati derivati
  • Disattivazione del modulo abilitato nelle impostazioni di build
  • Completamente pulito
  • Rilancio

Solo questo ha funzionato:

  • Trova qualsiasi codice commentato (/ * abc * /) dopo @end nei tuoi file ed elimina.

Ringraziamo Max_B: https://forums.developer.apple.com/thread/7439

Nel mio caso, altri progetti venivano completati automaticamente correttamente. Se tutti i tuoi progetti non riescono a prevedere correttamente il codice, potrebbe trattarsi di un problema diverso e le altre risposte potrebbero funzionare.


-1

Mi sono imbattuto in questo problema mentre cercavo di creare un'app OS X e sono stato in grado di risolverlo assicurandomi che la documentazione di Xcode 7.3 e la documentazione di OS X 10.11.4 fossero effettivamente scaricate. In questo modo è stata ripristinata completamente la funzionalità di completamento automatico. Le mie istruzioni complete sono di seguito così come nella mia risposta a una domanda simile: https://stackoverflow.com/a/39420664/3444925

Ho avuto questo problema da solo e dopo aver esaminato tutte le altre domande e risposte simili su questo, non sono riuscito a trovare una soluzione. Tuttavia, ho finalmente trovato ciò che ha funzionato per me.

Vai a Xcode -> Preferences -> Components. Lì probabilmente troverai una schermata simile alla seguente:

inserisci qui la descrizione dell'immagine

Ciò mostra che la documentazione non è stata scaricata e quindi qualsiasi tentativo di reindicizzare o ricostruire l'applicazione senza scaricare la documentazione impedirebbe di utilizzare la funzionalità di completamento automatico.

Dopo aver scaricato la documentazione di Xcode 7.3 e la documentazione di OSX 10.11.4, questo mi è bastato per riavere la funzionalità di completamento automatico (stavo cercando di creare un'app per OS X, quindi sentiti libero di scaricare tutta la documentazione che ti interessa ).


I collegamenti a risorse esterne sono incoraggiati, ma aggiungi un contesto attorno al collegamento in modo che gli altri utenti abbiano un'idea di cosa sia e perché si trovi. Cita sempre la parte più rilevante di un collegamento importante, nel caso in cui il sito di destinazione non sia raggiungibile o rimanga permanentemente offline.
pableiros

Ho appena aggiunto la mia risposta completa qui come citazione in blocco qui @pableiros
jkunzika

-1

Non mi sono imbattuto in questo fino a quando non ho creato un paio di nuovi file di classe. Altre classi funzionavano bene, ma il completamento automatico NON funzionerebbe per nulla nei nuovi file ...

FIX (per me) - Ho dovuto aggiungere quei file a TUTTI i miei target, inclusi i target di unit test anche se non li stavo ancora usando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.