O Autocomplete do Xcode 9 não funciona 100%-funciona parcialmente




xcode9 (15)

Esta manhã, o Xcode 9.0 (9A235) mostra uma nova / estranha caixa Auto Complete que não é de todo o que costumava ser. Como obtenho a caixa completa de preenchimento automático para que o preenchimento automático se pareça com o habitual?


  1. Verifique se você selecionou as Suggest completions while typing Sugestões Suggest completions while typing no Xcode -> Preferências -> Edição de Texto
  2. navegue até user-> Library-> Developer-> Xcode-> DerivedData no Finder e exclua a pasta DerivedData

A única conclusão automática do tempo não funciona quando o tipo de código-fonte do arquivo não está definido como Objective-C ou quando você está escrevendo em outro idioma (mesmo que seja apenas um pequeno trecho de, digamos, C).

Ele também não funciona se houver um erro de sintaxe na linha que você está editando ou acima dela. Uma chave perdida no final de uma chamada de método, mesmo que não esteja no arquivo que você está editando, impedirá que o preenchimento automático obtenha o contexto necessário para sugerir comandos relevantes. Assim, um arquivo ausente (mostrado em vermelho na sua lista de arquivos), mesmo que não seja o arquivo em que você está trabalhando.

Quando isso acontece, tente uma compilação para localizar erros e, em seguida, corrija-os.


Acabei de perder um dia tentando resolver o pesadelo do autocomplete do Xcode (9.2). A exclusão de dados derivados pareceu funcionar rapidamente, depois as coisas foram revertidas. Reboots etc e outros voodoo sugeridos não conseguiram fazer a diferença.

Eu desisti e baixei o teste de 30 dias do AppCode da Jet Brains. O preenchimento automático funcionou bem e talvez coincidência, mas depois começou a trabalhar novamente no meu projeto no Xcode. Não posso garantir que continue trabalhando ...


Aqui está um pouco de solução, mas funciona.

  1. Limpe o projeto ... Command + Shift + K

  2. Limpe a pasta de compilação ... Command + Shift + Options (Alt) + K

  3. Exclua dados derivados para o projeto ... Isso pode ser feito com a ajuda deste link:

    Como posso excluir dados derivados no Xcode 9?

  4. Feche o XCode.

  5. Reabra o XCode (deixe a indexação completa) e construa o projeto ... Comando + B

Uma vez que será feito com a construção, as sugestões estarão de volta. Eu tentei duas vezes.


Depois de um longo tempo de busca, finalmente consertei o problema para mim. Em Xcode> Preferências> Edição de Texto, em "Conclusão de Código", verifiquei por algum motivo "Use Escape key para mostrar as sugestões de conclusão". Assim que eu desmarcada esta caixa, o preenchimento automático funcionou como um encanto, sem sequer precisar reiniciar o Xcode! (Xcode 10)


Erros de compilação podem interromper o recurso de preenchimento automático no Xcode.


Estou usando o Xcode 10.2 e tive o mesmo problema.

Essa resposta do axel me ajudou a consertar.

De qualquer forma, vou descrever um pouco mais:

  1. Vá para YourProject.xcodeproj clicando com o botão direito do mouse e abra Show Package Contents
  2. Vá para xcuserdata e delete your youruser.xcuserdatad

Se você também tiver o xcworkspace (se já tiver algum pods instalado), execute as etapas 3 e 4, senão pule as etapas 3 e 4:

  1. Vá para YourProject.xcworkspace clicando com o botão direito do mouse e abra Show Package Contents
  2. Vá para xcuserdata e delete your youruser.xcuserdatad

  3. Sair do Xcode

  4. Excluir dados derivados usando o Terminal:

rm -rf ~ / Biblioteca / Desenvolvedor / Xcode / DerivedData

  1. Abra o Xcode e verifique se funciona.


Eu adicionei aqui o que estava acontecendo no meu projeto apenas no caso de poder ajudar alguém ... Eu tinha 2 arquivos com o mesmo nome e não sabia.


Experimentar:

  1. Vá para Xcode> Preferences> Text Editing
  2. Em conclusão do código - Desmarque a opção "Sugerir conclusões ao digitar"
  3. Saia do Xcode e, em seguida, reinicie o Xcode.
  4. Vá para Xcode> Preferences> Text Editing novamente
  5. Saia do Xcode e, em seguida, reinicie o Xcode.
  6. Agora vá para a conclusão do código e marque "Sugerir conclusões ao digitar".
  7. Tente digitar a função de biblioteca ou enum e divirta-se!

Isso pode acontecer quando o arquivo não é um membro do Target. Abra o arquivo no qual o preenchimento automático não está funcionando e mostre a guia "Utilitários" na parte superior direita do Xcode (azul na captura de tela abaixo).

Certifique-se de que seu alvo (normalmente o nome do seu aplicativo) esteja marcado. O preenchimento automático deve funcionar quase instantaneamente sem reiniciar o Xcode, limpar ou excluir os dados derivados.


Para mim, isso estava acontecendo no meu arquivo de teste, porque não fazia parte de um alvo por algum motivo. A definição da associação ao alvo resolveu o problema.


Para mim, o problema ocorreu quando descartei todas as alterações de um arquivo (em Source Control> Commit), o que efetivamente excluiu o arquivo. Isso é o que eu queria e eu pensei que o arquivo e todas as referências a ele seriam deladas também.

No entanto, ainda havia uma referência ao arquivo (mostrado em vermelho) no navegador do Project. A exclusão do arquivo (agora inexistente) no navegador do projeto trouxe, magicamente, o preenchimento automático de volta.

Nenhuma quantidade de limpeza, exclusão de dados derivados, etc. ajudou. Eu só percebi que o arquivo apagado ainda estava aparecendo quando tentei construir meu projeto, o que obviamente falhou porque não encontrei esse arquivo.

Espero que isso ajude alguém a economizar 30 minutos :)


Problemas principalmente porque há falta de localização de alguns arquivos no navegador do projeto (erros de compilação)

  1. Pressione command + 1 para abrir o painel Project Navigator
  2. Verifique se há algum arquivo ausente

Ou você pode:

  1. Excluir DerivedData (comando + shift + K)
  2. Pasta de compilação limpa (comando + shift + opção + K)
  3. Pressione construir novamente (comando + B)
  4. Você deve ver um erro de compilação que o Xcode não encontrou alguns arquivos que impedem que a ferramenta de compilação processe o preenchimento automático.
  5. Corrija e corrija todos os arquivos ausentes que você vê.

Espero que isto ajude


Remover o arquivo dos alvos de teste resolveu meu problema.


Por favor, tente fazer isso:

Selecione o arquivo >> verifique se o arquivo é adicionado aos destinos UITesting ou UnitTesting (File inspector -> Target Membership) . Em caso afirmativo, desmarque os dois e verifique se apenas o destino do projeto está selecionado. Em seguida, crie e tente se o preenchimento automático estiver funcionando bem.

Isso funcionou para mim. Espero que ajude alguém.





xcode9