Este bug está me deixando louco desde que comecei a usar o Xcode (4.6.3). Sempre que tento vincular um item do Storyboard ao meu código, recebo o erro:
Não foi possível encontrar nenhuma informação para a classe chamada ViewController.
Isso acontece também com classes personalizadas. Eu tentei métodos como:
- Excluindo os dados do delegado.
- Removendo e adicionando novamente as classes.
- Reiniciando o Xcode.
- Reinstalando o Xcode.
Não consigo pressionar a tecla Ctrl e arrastar para criar conexões em nenhum dos meus projetos, independentemente da classe. O mesmo problema ocorre com um aplicativo de modelo totalmente novo. Se eu digitar o código manualmente e pressionar a tecla Ctrl e arrastar, posso estabelecer uma conexão funcional, mas não posso adicioná-lo automaticamente. Nada do que consegui encontrar até agora na Internet ajudou. Alguma dica?
NSLog()
paraviewDidLoad:
Respostas:
O que resolveu esse problema para mim foi realmente excluir a classe do projeto.
Passos:
Isso parece forçar o Xcode a vincular a classe de volta ao storyboard.
Nota: para mim, o seguinte não funcionou:
Eu acho que isso é um bug da parte da Apple
fonte
Caso alguém ainda esteja frustrado com isso, há um truque para fazer as coisas funcionarem.
O que faço é inserir manualmente uma saída na minha classe, por exemplo
@IBOutlet weak var someView: UIView!
:, e arrastar do código para a exibição no IB ou no storyboard. Depois disso, consigo arrastar do IB / Storyboard para a minha turma para fazer conexões, os editores assistentes reconhecem a turma em "Automático", etc ...Funciona sempre.
fonte
Para mim, removê-los da sua associação de destino na coluna da direita e adicioná-los novamente fez o truque
fonte
Em algum momento, o Xcode ocorre devido ao VC não referenciar o arquivo de classe. A solução simples para isso é:
escreva a propriedade manualmente, conforme indicado.
Isso criará um sinal de link vazio antes do @IBOutlet , abra seu projeto no editor assistente, clique em sinal de link e arraste para a Visualização que você deseja conectar (eu conectei com o TableView). e é isso. Desfrute de codificação feliz !!!
fonte
Acabei de ter esse problema em abril de 2017 com o Xcode 8
Basta criar uma saída através do código e compilar a solução. por exemplo:
Você tem que amar o Xcode…
Edit: Ainda acontecendo no Xcode 9
fonte
os seguintes passos funciona para mim espero que funcione para você também
1- Você precisa reabrir seu projeto depois de fechar o Xcode.
2- Aguarde a indexação dos arquivos do projeto
3- Verifique se funciona ou não
4- Se ainda não estiver funcionando, siga o passo 5, se não estiver feliz por você :)
5- Limpe e construa o objetivo do seu projeto
fonte
Eu tentei de tudo e não funcionou, então para mim o que funcionou é:
Todos os meus controladores de exibição não estavam sendo reconhecidos; portanto, excluir todos os arquivos e adicionar novamente não era uma opção, pois esse é um grande projeto.
fonte
Para mim, o seguinte funcionou:
Faça uma 'limpeza' e uma 'limpeza de pasta de construção' (pressione 'opção' no menu Produto para obter o comando 'limpeza de pasta de construção'
Stop Xcode
No terminal, vá para a pasta de dados derivados:
(/ Usuários // Biblioteca / Desenvolvedor / Xcode / DerivedData)
Exclua o diretório de dados derivado do seu projeto.
Onda de frango morto no ar
Iniciar o Xcode
fonte
Eu tive que fazer uma combinação de algumas das respostas até agora:
(Clique no botão amarelo no canto superior esquerdo do controlador de exibição no storyboard -> vá para o inspetor de identidade (opção + comando + 3) -> exclua o nome da classe personalizada na parte superior)
(Clique com o botão direito do mouse no arquivo -> excluir -> remover referência)
(Clique com o botão direito do mouse na pasta em que o arquivo estava -> "Adicionar arquivo ao [projeto]")
fonte
Se as pessoas tentam o que precede e as coisas ainda não estão funcionando, o truque estranho que funcionou para mim foi adicionar a saída em um pedaço de espaço em branco. Funciona se não houver outras linhas diretamente acima ou abaixo da linha que você está adicionando. Estranho, mas funcionou!
fonte
O que funcionou para mim foi, em vez de arrastar a conexão do botão para o código, foi:
depois que vinculei meu código dessa maneira, ele funcionou normalmente a partir de então.
fonte
Fique no alvo!
Eu estava adicionando uma nova classe com um Xib e comecei a ver esse problema e passei um bom tempo analisando as respostas aqui e vendo se alguma delas fazia alguma diferença.
Por acaso, tenho vários destinos no meu espaço de trabalho e geralmente tenho que alternar entre eles.
Acontece que adicionar novos arquivos iniciará um re-índice no Xcode. Mas se você estiver apontando para o alvo errado, a indexação provavelmente não terá sentido e, durante o arrastar para conectar o Xcode, não será possível encontrar sua classe.
Em resumo
Passo 1.
Verifique se o destino correto foi definido para que a indexação faça sentido.
fonte
Isso funcionou para mim:
(mantenha pressionada a tecla 'option' e vá para o menu " Product " para acessá-lo.
Em uma nota lateral, não tenho certeza se isso ajudou, mas também excluí os dados derivados antes de executar as etapas acima (preferências do Xcode> Localizações)
fonte
Selecione o ViewController no storyBoard, exclua o valor atual no painel do lado direito / "Classe do cliente" / "classe" e adicione novamente a classe de controle (digite: "SampleViewController" ...), digite. -> Isso funciona para mim
fonte
Eu tentei todas essas respostas, o problema para mim estava relacionado ao Xcode não poder indexar os arquivos. Corrigi isso simplesmente saindo do Xcode e reabrindo o projeto. Claro que fiz isso depois de tentar todas as soluções acima: p
fonte
Produto> Clean (Command - Shift - K) consertou para mim!
fonte
Esta é a etapa MAIS FÁCIL que fiz para corrigir esse problema.
fonte
Como minha experiência de teste, se você excluir uma classe associada ao Xcode e adicionar o arquivo novamente, esse problema ocorrerá.
fonte
Normalmente, quando isso acontece comigo, ainda não salvei o código da classe. Basta acessar o código e pressionar cmd + s, que geralmente corrige o problema da maneira certa.
fonte
Só precisa limpar e recriar o projeto.
fonte
Nenhuma das etapas acima funcionou para mim, mas acho que posso ter descoberto o problema. Pelo menos é o que funcionou para mim e não é um bug no Xcode.
Quando estiver no editor assistente, observe a parte superior da janela que possui o código para o seu viewController. A terceira opção à direita provavelmente diz "Manual", mas deve dizer "Automático". Depois que eu mudei isso, o problema foi resolvido!
fonte
Eu estava tendo um problema semelhante: "Não foi possível encontrar uma classe chamada ..." e a causa foi estúpida da minha parte, depois que eu descobri. Verifique se não está arrastando do item para a interface - verifique se está sendo arrastado para a própria classe
fonte
Eu tentei TUDO!
Verifique se o nome da classe do seu UIViewController não contém a palavra "Teste"
Relatório de bug enviado.
fonte
Eu tentaria refazer os arquivos .m e .h em questão e fornecer um nome original, não genérico como "ViewController". Tente algo mais parecido com o que você deseja que esse arquivo faça e termine em View Controller (por exemplo, "PizzaDecoraterViewController")
Em seguida, selecione o ViewController que você deseja conectar a esses arquivos. Certifique-se de selecionar o ViewController, não apenas um objeto. Clique na barra preta na parte inferior (aquela que possui os ícones "Primeiro respondedor" e "Sair"). O ViewController inteiro deve ser azul. Em seguida, vá para a seção Classe personalizada no Inspetor de identidade e você verá um "UIViewController" acinzentado no primeiro campo. Nesse campo, digite o nome do arquivo .h ou .m ao qual você deseja se conectar (comece a digitar PizzaDecorator ... e deve fazer uma pequena conclusão automática). Em seguida, pressione ENTER.
Ao abrir o Assistente do Editor, verifique se o arquivo que você está tentando arrastar e soltar é, de fato, o arquivo correto.
Se você fez tudo como foi dito acima, deve funcionar.
fonte
Como eu comentei na resposta de @ ChrisHarrison, essas coisas não funcionaram para mim, mas a exclusão dos dados derivados, como eu consegui, excluindo os dados derivados, como em https://stackoverflow.com/a/16182672/1449799
fonte
Exclua os arquivos (apenas as referências) e adicione-os novamente.
fonte
Bem, no meu caso, o que funcionou (é um pouco estranho, mas funcionou) é o seguinte:
Tente adicionar uma fonte de dados (por exemplo, uma extensão ao ViewController como um UITableViewDataSource). O Xcode tentará recarregar o ViewController. Depois, escrevi algum método do protocolo (no início, o Xcode não preenchia automaticamente os métodos, mas escrevia manualmente), depois adicionei o IBOutlets e, finalmente, removi a fonte de dados.
Exemplo:
fonte
Para mim, a exibição para a qual eu havia especificado uma classe personalizada não estava sendo compilada pelo construtor de interface. Foi marcado
@IBDesignable
.Removendo
@IBDesignable
e adicionando minhas saídas e marcando-a como@IBDesignable
resolvido o problema no meu caso.fonte
Apenas tente excluir os dados derivados do projeto
fonte
apenas tente isso
fonte