O preenchimento automático do Xcode 7.3 é tão frustrante


96

Existe um novo autocomplete no Xcode. Provavelmente pode ser útil porque verifica não apenas o início dos nomes, etc. Mas descobri que muitas vezes ele não encontra um nome de classe ou um nome de const, etc. Eu preciso digitar o nome inteiro sozinho. Acima de tudo, descobri que isso torna minha vida mais difícil e consome mais tempo de programação. Existe uma maneira de mudar para a maneira antiga que costumava funcionar?


Aqueles que lidaram com 7.3 como uma versão beta vêm reclamando disso há semanas: stackoverflow.com/questions/35586056/…
— matt

você pode baixar o xcode mais antigo manualmente em developer.apple.com/downloads , por exemplo, xcode 7.2.1: adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
— George

43
Eu não posso acreditar que eles lançaram um grande lançamento com algo tão importante quanto o preenchimento automático quebrado. É como se ninguém na Apple realmente usasse o Xcode para desenvolvimento.
— soleil

3
Isso está afetando tanto a minha produtividade que estou voltando ao Xcode 7.2.1 para que possa realmente voltar à velocidade normal de desenvolvimento. Estou mais aborrecido do que o normal com a Apple com este. Eles não apenas me forçaram a ir ao El Capitan para executar o Xcode 7.3, mas quando chego lá, descobri que a terra prometida está longe de ser realidade. Eles testam tudo isso? Desrespeito típico por 'seus' desenvolvedores, como sempre.
— Quintin Willison

2
O Xcode 7.3.1 foi lançado ontem, depois dos meus testes, esse bug ainda existe ... Mas a Apple disse que o corrigiu no 7.3.1.
— Vincent Sit

Respostas:


18

Xcode 7.3.1

  1. Em Xcode> Preferências> Edição de Texto

    desmarque Enable type-over completions

  2. reinicie o Xcode


14

Parece que desmarcar a caixa de seleção "Habilitar conclusões de digitação" em XCode -> Preferências -> Edição de texto resolve. Pelo menos no meu caso, o preenchimento automático voltou a ser um método antigo, então ele poderia preencher automaticamente o nome da classe que eu tinha que digitar manualmente antes disso.


Tentei, mas ainda não completa os nomes das classes corretamente.
— Erik B,

Não vejo diferença. Ainda preciso terminar os nomes personalizados ... :(
— matthewfx

Para fazer isso funcionar, você deve ativar a indexação. Para ativar a indexação, você não pode fazer isso de dentro do Xcode. Você deve executar a seguinte linha em um shell. Em seguida, reinicie o Xcode. % defaults delete com.apple.dt.Xcode IDEIndexDisable consulte stackoverflow.com/questions/7328041/…
— andrewz

5

Esta não é de forma alguma uma solução adequada, MAS me permitiu (por pouco) manter minha sanidade nos últimos dias: depois de cada build, você precisa destruir sua pasta Derived Data. Você pode encontrar esta pasta em Xcode > Preferences > Locations > Derived Data. Apenas jogue fora tudo e isso dará início a uma etapa de reindexação que deve restaurar a funcionalidade de preenchimento automático adequada. Infelizmente, descobri que, depois de construir, o comportamento do preenchimento automático volta ao estado interrompido.


4

apenas abra a pasta de dados derivados do Xcode e exclua a pasta

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

em seguida, reinicie o Xcode, agora o preenchimento automático funciona perfeitamente


Isso funcionou para mim, não sei por que foi avaliado negativamente.
— Mike M

1

Tenho a impressão de que algumas 'partes' do preenchimento automático simplesmente falham depois de um tempo. Eu uso para reiniciar o Mac para fazê-lo voltar a funcionar. Mas às vezes falha logo de novo. Talvez a resposta de @Alex Bykov combinada com uma reinicialização resolva o problema.

De qualquer forma: o preenchimento automático do Xcode sempre foi uma porcaria. AppCode costumava ficar muito melhor. Infelizmente, ainda não com o Swift.


1

Fechei o Xcode, abriu o Xcode, deixou indexar, funcionou.


1
Infelizmente, é a única opção.
— dia

0

não encontra um nome de classe

Como uma solução alternativa, você pode tentar pressionar Command + Shift + K e Command + B várias vezes; funciona temporariamente.


1
Fez Cmd + Shfit + K (Clean), Cmd + Shfit + Opt + K (Pasta compilação limpa), fechou Xcode, apagados ~/Library/Developer/Xcode/DerivedData, reiniciado OS X, e ainda não ajudou. :-)
— TaylanUB

1
Temos um projeto muito grande que leva 20 minutos para ser compilado do zero, portanto, limpar e reconstruir não é uma opção para nós ...
— longbow

0

Xcode 7.3.1

Vou compartilhar outra razão possível, que depois de alguns dias descobrimos. Temos vários esquemas e, em um deles, o cabeçalho de ponte estava importando um arquivo que não existia mais. Então, ele não quebrou durante a compilação e execução (o cabeçalho pertence a outro esquema), mas fez com que o preenchimento automático quebrasse (não foi possível encontrar nenhuma classe object-c).

Espero que ajude alguém!


0

Depois de tentar métodos diferentes:

  • Excluir Dados Derivados
  • Desligando o Módulo nas Configurações de Compilação
  • Limpeza Completa
  • Relançar

Só isso funcionou:

  • Encontre qualquer código comentado (/ * abc * /) após @end em seus arquivos e exclua.

Crédito para Max_B: https://forums.developer.apple.com/thread/7439

No meu caso, outros projetos foram completados automaticamente de forma correta. Se todos os seus projetos falharem em prever o código corretamente, então pode ser um problema diferente e as outras respostas podem funcionar.


-1

Eu encontrei esse problema ao tentar fazer um aplicativo OS X e fui capaz de corrigir esse problema, certificando-me de que a documentação do Xcode 7.3 e a documentação do OS X 10.11.4 foram realmente baixadas. Isso restaurou totalmente minha funcionalidade de preenchimento automático. Minhas instruções completas estão abaixo, bem como minha resposta a uma pergunta semelhante: https://stackoverflow.com/a/39420664/3444925

Eu mesmo tive esse problema e depois de examinar todas as outras perguntas e respostas semelhantes sobre isso, não consegui encontrar uma solução. No entanto, finalmente encontrei o que funcionou para mim.

Vá para Xcode -> Preferences -> Components. Lá, você provavelmente encontrará uma tela semelhante a esta:

insira a descrição da imagem aqui

Isso mostra que a documentação não foi baixada e, portanto, qualquer tentativa de reindexar ou reconstruir o aplicativo sem baixar a documentação o impediria de usar a funcionalidade de preenchimento automático.

Depois de baixar a documentação do Xcode 7.3 e a documentação do OSX 10.11.4, isso foi o suficiente para eu obter a funcionalidade de preenchimento automático de volta (eu estava tentando construir um aplicativo OS X, então fique à vontade para baixar tanta documentação quanto for relevante para você )


Links para recursos externos são incentivados, mas por favor, adicione contexto ao link para que seus outros usuários tenham uma ideia do que é e por que está lá. Sempre cite a parte mais relevante de um link importante, caso o site de destino esteja inacessível ou fique permanentemente offline.
— pableiros

Acabei de adicionar minha resposta completa aqui como uma citação em bloco aqui @pableiros
— jkunzika

-1

Não me deparei com isso até que criei alguns novos arquivos de classe. Outras classes funcionaram bem, mas o preenchimento automático NÃO funcionaria para nada nos novos arquivos ...

CORRIGIR (para mim) - Tive que adicionar esses arquivos a TODOS os meus destinos, incluindo os destinos de teste de unidade, embora ainda não os estivesse usando.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.