Estou programando um aplicativo rapidamente e quando executo o aplicativo de teste no simulador do iPhone tudo funciona, mas depois tento deslizar para a direita, que é um gesto que eu adicionei para que ele fosse para a próxima página (View Controller Two) ele trava e mostra esse relatório de erro no log do console.
2014-10-18 12:07:34.400 soundtest[17081:818922] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<soundtest.ViewControllerTwo 0x7f92f1f20090> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key sfdfa.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001067813f5 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001082afbb7 objc_exception_throw + 45
2 CoreFoundation 0x0000000106781039 -[NSException raise] + 9
3 Foundation 0x0000000106b984d3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259
4 CoreFoundation 0x00000001066cb400 -[NSArray makeObjectsPerformSelector:] + 224
5 UIKit 0x00000001072ce97d -[UINib instantiateWithOwner:options:] + 1506
6 UIKit 0x000000010712f698 -[UIViewController _loadViewFromNibNamed:bundle:] + 242
7 UIKit 0x000000010712fc88 -[UIViewController loadView] + 109
8 UIKit 0x000000010712fef9 -[UIViewController loadViewIfRequired] + 75
9 UIKit 0x000000010713038e -[UIViewController view] + 27
10 UIKit 0x00000001076cd83f -[_UIFullscreenPresentationController _setPresentedViewController:] + 65
11 UIKit 0x000000010710bc49 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 105
12 UIKit 0x000000010713c121 -[UIViewController _presentViewController:withAnimationController:completion:] + 1746
13 UIKit 0x000000010713e461 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 132
14 UIKit 0x000000010713e385 -[UIViewController presentViewController:animated:completion:] + 229
15 UIKit 0x00000001073bb9d6 _UIGestureRecognizerSendActions + 262
16 UIKit 0x00000001073ba679 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 532
17 UIKit 0x00000001073bf296 ___UIGestureRecognizerUpdate_block_invoke662 + 51
18 UIKit 0x00000001073bf192 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 254
19 UIKit 0x00000001073b520d _UIGestureRecognizerUpdate + 2796
20 UIKit 0x00000001070520a6 -[UIWindow _sendGesturesForEvent:] + 1041
21 UIKit 0x0000000107052cd3 -[UIWindow sendEvent:] + 667
22 UIKit 0x000000010701fae1 -[UIApplication sendEvent:] + 246
23 UIKit 0x000000010702cbad _UIApplicationHandleEventFromQueueEvent + 17370
24 UIKit 0x0000000107008233 _UIApplicationHandleEventQueue + 1961
25 CoreFoundation 0x00000001066b6ad1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
26 CoreFoundation 0x00000001066ac99d __CFRunLoopDoSources0 + 269
27 CoreFoundation 0x00000001066abfd4 __CFRunLoopRun + 868
28 CoreFoundation 0x00000001066aba06 CFRunLoopRunSpecific + 470
29 GraphicsServices 0x000000010a1699f0 GSEventRunModal + 161
30 UIKit 0x000000010700b550 UIApplicationMain + 1282
31 soundtest 0x000000010624503e top_level_code + 78
32 soundtest 0x000000010624507a main + 42
33 libdyld.dylib 0x000000010ae4a145 start + 1
34 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
cmmd + F
para que você possa pesquisar dentro do console e procurar o aplicativo Terminando devido a uma exceção não capturada , exatamente 1 linha depois disso, você verá o motivo: o que indica o motivo pelo qual o aplicativo travou. (Sim, eu já tive esse erro muitas vezes :) #Respostas:
CMYR - "isso também pode acontecer se você conectar um botão a um IBAction que não existe mais (ou foi renomeado)"
Se você estiver enfrentando esse problema, certifique-se de acessar o Main.storyboard, clique com o botão direito do mouse no ícone da caixa amarela (ver controlador) na parte superior do contorno do telefone e DELETE as tomadas com bandeiras amarelas.
O que acontece em casos como esse é que você provavelmente nomeou uma ação e a renomeou. Você precisa excluir o nome antigo e, se esse for o único problema, será iniciado no sim!
fonte
Você definiu a variável OS_ACTIVITY_MODE por acaso? Para verificar se você tem essa variável definida (e desativada), no Xcode 9, faça o seguinte:
Select from Xcode menu Product -> Scheme -> Edit Scheme.. Select the Run scheme and look under Arguments. If you see the OS_ACTIVITY_MODE variable checked, deselect it
fonte
No Xcode 9 e Swift 4:
Imprima a pilha de exceções para saber o motivo da exceção:
Adicionar (+) Adicionar ponto de interrupção de exceção.
Selecione o novo ponto de interrupção, clique com a tecla Control pressionada e edite o ponto de interrupção.
fonte
No meu caso, eu estava chamando um método delegado, mas o método não foi declarado.
Este erro é genérico e pode aparecer por vários motivos. Verifique se você não desabilitou seus registros para realmente ver o que aconteceu. Ative OS_ACTIVITY_MODE nos esquemas se você o tiver desativado. Você pode desativá-lo para evitar muitos logs irrelevantes, mas eles são úteis.
Você também pode rastrear a causa em mais detalhes adicionando um ponto de interrupção de exceção
po $arg1
. Como já mencionado por Ahmed-LotfiAqui está uma lista de verificação comum que você pode seguir.
fonte
Outras soluções não funcionaram para mim, aqui está a minha. Aplica-se apenas ao Xcode 8 ao executar no Swift 2.3 modo legado :
Parece que o Interface Builder está tentando renomear o método que deve ser conectado ao botão.
Aqui está um radar com mais detalhes.
A solução (solução alternativa) é substituir manualmente o nome do parâmetro do método para
_
:Mude para isto:
fonte
Também pode estar errado o nome do identificador de segmento. Por exemplo -
fonte
Minha situação era um pouco diferente, eu estava tentando entrar em uma
UINavigationController
, e o que a corrigiu foi a obtenção da parte da fila principal.Para Objective-C:
Para o Swift 3:
fonte
Isso começou a acontecer para mim no Xcode 7, e eu não tinha tomadas com bandeiras amarelas que eu poderia excluir.
A única coisa que funcionou para mim foi substituir esta linha no AppDelegate:
para:
fonte
Para mim, o problema estava no meu IBAction com um UIButton.
Quando você pressiona Ctrl + Arraste para criar uma IBAction a partir de um UIButton, certifique-se de selecionar "UIButton" no menu suspenso Tipo. A seleção padrão de AnyObject faz com que o aplicativo falhe quando você toca no UIButton.
fonte
Também pode ser um Triggered Segues quebrado, verifique no seu storyboard, assim que você reconectar os segues ou executar, tudo funcionará novamente.
Verifique se o
Identifier
Segue está correto e semelhante ao seu código .fonte
Corri para esse problema quando alterei o nome da variável que se conectava a um dos meus botões. Portanto, tenha isso em mente!
fonte
Eu sou novo no Xcode, por isso levei algumas horas para descobrir o problema para carregar o arquivo xls. Eu segui a maioria dos códigos de amostra lá em cima e nenhum deles resolve o erro Xcode mostrado.
A solução que encontrei foi que precisamos especificar o 'Adicionar aos destinos:' marque o projeto a ser adicionado, quando importamos o arquivo xls para o Xcode, arrastando e soltando em Projeto -> Arquivos de Suporte.
fonte
pode haver mais de 1 IBAction para um botão no seu controlador de exibição, tente encontrá-los e remova todos os itens anteriores desse botão no seu controlador e crie um novo botão. Isso resolverá o seu problema.
fonte
Verifique se você não está aplicando dinamicamente restrições relativas a uma exibição que ainda não existe na hierarquia da exibição.
No exemplo acima, bottomView foi incluído na hierarquia de visualizações antes de aplicar restrições relativas.
fonte
Eu recebi esse erro das 2 maneiras a seguir:
Eu estava recebendo esse erro quando empurrava para outro UIViewController.
No entanto, por engano, subclassifiquei a outra classe
UITabBarController
e estava recebendo esse erro.Como eu consertei isso? Subclassifiquei
UIViewController
e não estava mais travando :)Eu não queria usar o storyboard. Então eu apaguei. No entanto, esqueço de excluir sua referência nas configurações do projeto . Apenas cliquei no projeto >> Geral >> Informações de implantação >> e, em seguida, defino a Interface principal como espaço em branco. (Foi definido anteriormente como principal)
Como você pode ver nas duas situações, você está recebendo um erro ao acessar algum objeto que existe ...
fonte
Vou adicionar o meu problema à lista de soluções possíveis, caso alguém aconteça com este tópico.
Identificador de célula do TableView. Primeiro, verifique se o seu celular tem um identificador. Segundo, verifique se você está fazendo referência a esse identificador ao retirar a fila da célula.
fonte
Swift 4 :
Eu estava recebendo esse erro devido a uma alteração na API do UIVisualEffectView. No Swift 3, não havia problema em fazer isso:
myVisuallEffectView.addSubview(someSubview)
Mas no Swift 4 eu tive que mudar para isso:
myVisualEffectView.contentView.addSubview(someSubview)
fonte
Eu tive esse mesmo erro quando tive um erro de digitação para uma das visualizações ao criar restrições usando o formatador visual. Espero que ajude alguém ... ou eu novamente um dia.
fonte
Se você estiver usando o reagir nativo e o reag-native-firebase, vincule o arquivo Google-Services.plist ( https://github.com/invertase/react-native-firebase/issues/313#issuecomment-320435560 )
fonte
No meu caso, era o UIAlertView no iPad: UIAlertController is Crashed (iPad) . Não configurei o sourceView e o sourceRect.
fonte
No meu caso, o Xcode 8.2.1 , eu tinha uma Visualização do Kit de Mapa em um controlador de visualização. Então eu fui para
e acrescentou
MapKit.framework
, então estava tudo bem.Eu acho que isso também se aplica a outras visões que requerem estrutura.
PS A execução no iOS 9 me disse que havia um problema no Map Kit View, enquanto no iOS 10 não me disse nada!
fonte
Somente a solução "drop armageddon" funcionou para mim:
fonte
No meu caso, o XCode estava cansado e falhou ao iniciar o aplicativo com esta mensagem, devido a uma falha na declaração (que foi definida pelo nosso código).
A execução em outro dispositivo mostrou a falha de afirmação, que pudemos corrigir, e tudo voltou ao normal.
fonte
Para Swift 2.3
Isso parece ser um bug no Xcode 8 e no Swift 2.3, se você estiver conectando a ação do botão ao seu código via storyboard, verifique se o Xcode não renomeou a ação, para mim está adicionando um withSender: no final dos métodos , o que faço é ir para o meu código e renomear o método para corresponder ao que o Xcode escreveu.
Para qualquer outra versão, verifique a resposta correta.
fonte
No meu caso, era o InterfaceBuilder. Eu tinha copiado algumas visualizações de outro ViewController que atrapalhavam as restrições.
No InterfaceBuilder, tive o erro de seta vermelha no ViewController.
Durante a execução, o aplicativo travou.
fonte
No meu caso, o aplicativo travou porque eu não defini a associação de destino do storyboard.
fonte
No meu caso, o projeto
Build Settings
continha alguns diretórios inexistentes paraFramework Search Paths
eLibrary Search Paths
.fonte
Eu tive dois problemas:
1) Meu alvo não tinha o controlador de exibição incluído que foi usado no arquivo de storyboard.
2) Meu storyboard tinha cerca de 3 anos, tive que recriar um dos controladores de exibição no controlador da barra de guias a partir do zero (ele só tinha um UITextField e ainda não sei por que não estava funcionando)
fonte
Ainda outra causa possível:
No meu caso, eu tinha um
xib
e estava ligandoBundle.main.loadNibNamed(...
em que ponto estava travando. Todo o meuIBOutlets
eIBActions
parecia bem. No final, notei que onib
estava realmente carregando, mas quando tentei acessar a primeira (e única) visualização (nib.first
), isso não estava funcionando. Na verdade,nib.count
estava retornando um número inteiro muito grande (max int?), Em vez do esperado1
. Tentei adicionar novamente a exibição, mas ainda não tive sorte.No final, apaguei o
xib
arquivo inteiro e iniciei novamente (mas mantive algumas das visualizações na área de transferência para poder colá-las em vez de recriá-las novamente).Isso funcionou!
fonte
Isso pode acontecer se você tiver uma tabela e esquecer de atribuir UITableViewDelegate e UITableViewDataSource à classe
fonte