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.