Je programme une application en Swift et lorsque j'exécute l'application de test sur le simulateur iPhone, tout fonctionne, mais j'essaye de faire glisser vers la droite, ce qui est un geste que j'ai ajouté pour aller à la page suivante (View Controller Two) il plante et affiche ce rapport d'erreur dans le journal de la 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
pour pouvoir rechercher dans la console et rechercher l' application de terminaison en raison d'une exception non interceptée , exactement 1 ligne après cela, vous verrez la raison: qui vous indique la raison pour laquelle votre application s'est plantée. (ouais, j'ai eu cette erreur trop de fois :)Réponses:
CMYR - "cela peut aussi arriver si vous avez câblé un bouton à une IBAction qui n'existe plus (ou qui a été renommée)"
Si vous rencontrez ce problème, assurez-vous d'aller à Main.storyboard, cliquez avec le bouton droit sur l'icône de la boîte jaune (contrôleur de vue) en haut du contour du téléphone et SUPPRIMEZ la ou les prises avec des drapeaux jaunes.
Ce qui se passe dans des instances comme celle-ci, c'est que vous avez probablement nommé une action, puis l'avez renommée. Vous devez supprimer l'ancien nom et si c'était le seul problème, cela démarrera directement dans sim!
la source
Avez-vous défini la variable OS_ACTIVITY_MODE par hasard? Pour vérifier si cette variable est définie (et la désactiver), dans Xcode 9, procédez comme suit:
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
la source
Dans Xcode 9 et Swift 4:
Imprimez la pile d'exceptions pour connaître la raison de l'exception:
Ajouter (+) Ajouter un point d'arrêt d'exception.
Sélectionnez le nouveau point d'arrêt, Ctrl-clic, Modifier le point d'arrêt.
la source
Dans mon cas, j'appelais une méthode déléguée mais la méthode n'a pas été déclarée.
Cette erreur est générique et peut apparaître pour plusieurs raisons. Assurez-vous que vous n'avez pas désactivé vos journaux pour voir réellement ce qui s'est passé. Activer OS_ACTIVITY_MODE dans les schémas si vous l'avez désactivé. Vous l'avez peut-être désactivé pour éviter un grand nombre de journaux non pertinents, mais ils sont pratiques.
Vous pouvez également tracer la cause plus en détail en ajoutant un point d'arrêt d'exception
po $arg1
. Comme déjà mentionné par Ahmed-LotfiVoici une liste de contrôle commune que vous pouvez parcourir.
la source
D'autres solutions n'ont pas fonctionné pour moi, voici la mienne. Cela s'applique uniquement à Xcode 8 lors de l'exécution dans Swift 2.3 mode hérité de :
On dirait qu'Interface Builder essaie de renommer la méthode qui devrait être connectée au bouton.
Voici un radar avec plus de détails.
La solution (solution de contournement) consiste à remplacer manuellement le nom du paramètre de méthode par
_
:Changez pour ceci:
la source
Il peut également s'agir d'un nom d'identifiant de Segue incorrect. Par exemple -
la source
Ma situation était un peu différente, j'essayais de passer à un
UINavigationController
, et ce qui a résolu le problème pour moi était d'obtenir la partie principale de la file d'attente.Pour Objective-C:
Pour Swift 3:
la source
Cela a commencé à se produire pour moi sur Xcode 7, et je n'avais aucun point de vente avec des drapeaux jaunes que je pouvais supprimer.
La seule chose qui a fonctionné pour moi a été de remplacer cette ligne dans AppDelegate:
à:
la source
Pour moi, le problème était dans mon IBAction avec un UIButton.
Lorsque vous Ctrl + Glissez pour créer une IBAction à partir d'un UIButton, assurez-vous de sélectionner "UIButton" dans la liste déroulante Type. La sélection par défaut d'AnyObject provoque le blocage de l'application lorsque vous appuyez sur UIButton.
la source
Il peut également s'agir d'une séquence déclenchée cassée, vérifiez votre storyboard, dès que vous reconnectez les segues ou la sortie, tout devrait fonctionner à nouveau.
Assurez-vous que le
Identifier
de la Segue est correct et similaire à votre code .la source
J'ai rencontré ce problème lorsque j'ai changé le nom de la variable qui se connectait à l'un de mes boutons. Alors garde ça en tête!
la source
Je suis nouveau sur Xcode, il m'a donc fallu quelques heures pour résoudre le problème afin de charger le fichier xls. J'ai suivi la plupart des exemples de codes et aucun d'entre eux ne résout l'erreur Xcode affichée.
La solution que j'ai trouvée était que nous devions spécifier le 'Ajouter aux cibles:' cochez le projet à ajouter, lorsque nous importons le fichier xls dans Xcode par glisser-déposer dans Project -> Supporting Files.
la source
il peut y avoir plus de 1 IBAction pour un bouton dans votre contrôleur de vue, essayez de les trouver et supprimez tous les éléments précédents pour ce bouton dans votre contrôleur et créez un nouveau bouton. Cela résoudra votre problème.
la source
Assurez-vous que vous n'appliquez pas dynamiquement des contraintes relatives à une vue qui n'est pas encore présente dans la hiérarchie des vues.
Dans l'exemple ci-dessus, bottomView a été intégré à la hiérarchie des vues avant d'y appliquer des contraintes relatives.
la source
J'ai cette erreur des 2 manières suivantes:
J'obtenais cette erreur lorsque je poussais dans un autre UIViewController.
CEPENDANT par erreur, j'ai sous-classé l'autre classe de
UITabBarController
et j'obtenais cette erreur.Comment je l'ai réparé? Je me suis sous-classé
UIViewController
et je n'étais plus en panne :)Je ne voulais pas utiliser de storyboard. Alors je l'ai supprimé. Pourtant j'oublie de supprimer sa référence dans les paramètres du projet . J'ai juste cliqué sur le projet >> Général >> Informations sur le déploiement >> et j'ai ensuite mis l'interface principale en espace noir. (Il était auparavant défini sur main)
Comme vous pouvez le voir pour les deux situations, vous obtenez une erreur pour accéder à un objet qui existe ...
la source
Je vais ajouter mon problème à la liste des solutions possibles au cas où quelqu'un d'autre arriverait sur ce fil.
Identificateur de cellule TableView. Tout d'abord, assurez-vous que votre cellule a un identifiant. Ensuite, assurez-vous de référencer cet identifiant lorsque vous retirez la cellule de la file d'attente.
la source
Swift 4 :
J'obtenais cette erreur en raison d'un changement dans l'API UIVisualEffectView. Dans Swift 3, c'était correct de faire ceci:
myVisuallEffectView.addSubview(someSubview)
Mais dans Swift 4, j'ai dû le changer pour ceci:
myVisualEffectView.contentView.addSubview(someSubview)
la source
J'ai eu cette même erreur lorsque j'ai eu une faute de frappe pour l'une des vues lors de la création de contraintes à l'aide du formateur visuel. J'espère que cela aidera quelqu'un ... ou moi encore un jour.
la source
Si vous utilisez react native et react-native-firebase, assurez-vous de lier le fichier Google-Services.plist ( https://github.com/invertase/react-native-firebase/issues/313#issuecomment-320435560 )
la source
Dans mon cas, c'était l'UIAlertView sur iPad: UIAlertController is Crashed (iPad) . Je n'ai pas configuré sourceView et sourceRect.
la source
Pour mon cas, Xcode 8.2.1 , j'avais une vue Map Kit dans un contrôleur de vue. Alors je suis allé à
et ajouté
MapKit.framework
, alors c'était bien.Je pense que cela s'appliquera également à d'autres points de vue qui nécessitent un cadre.
PS Running sur iOS 9 m'a dit qu'il y avait un problème avec Map Kit View, tandis que sur iOS 10 ne m'a rien dit!
la source
Seule la solution "drop armageddon" a fonctionné pour moi:
la source
Dans mon cas, XCode était fatigué et ne parvenait pas à démarrer l'application avec ce message, en raison d'un échec d'assertion (qui a été défini par notre code).
L'exécution sur un autre appareil a montré l'échec d'assertion, que nous avons pu corriger, et tout est revenu à la normale.
la source
Pour Swift 2.3
Cela semble être un bogue avec Xcode 8 et Swift 2.3, si vous connectez l'action du bouton à votre code via le storyboard, assurez-vous que Xcode n'a pas renommé l'action, pour moi, il ajoute un withSender: à la fin des méthodes , donc ce que je fais est d'aller dans mon code et de renommer la méthode pour qu'elle corresponde à celle écrite par Xcode.
Pour toute autre version, cochez la bonne réponse.
la source
Dans mon cas, c'était InterfaceBuilder. J'avais copié des vues d'un autre ViewController qui ont gâché les contraintes.
Dans InterfaceBuilder, j'ai eu l'erreur de flèche rouge sur le ViewController.
Pendant l'exécution, l'application s'est plantée.
la source
Dans mon cas, l'application s'est plantée parce que je n'ai pas défini l'adhésion cible du storyboard.
la source
Dans mon cas, le projet
Build Settings
contenait des répertoires non existants pourFramework Search Paths
etLibrary Search Paths
.la source
J'ai eu deux problèmes:
1) Ma cible n'avait pas le contrôleur de vue inclus qui était utilisé dans le fichier de storyboard.
2) Mon storyboard avait environ 3 ans, j'ai dû recréer l'un des contrôleurs de vue dans le contrôleur de la barre d'onglets à partir de zéro (il n'avait qu'un UITextField et je ne sais toujours pas pourquoi cela ne fonctionnait pas)
la source
Encore une autre cause possible:
Dans mon cas, j'avais un
xib
et j'appelaisBundle.main.loadNibNamed(...
à quel point il tombait en panne. Tout monIBOutlets
etIBActions
semblait bien. En fin de compte, j'ai remarqué que lenib
chargement était en fait, mais lorsque j'ai essayé d'accéder à la première (et seule) vue (nib.first
), cela ne fonctionnait pas. En faitnib.count
retournait un très grand entier (max int?), Au lieu de l'attendu1
. J'ai essayé de rajouter la vue, mais toujours pas de chance.En fin de compte, j'ai supprimé tout le
xib
fichier et j'ai recommencé (mais j'ai conservé certaines des vues dans mon presse-papiers afin de pouvoir les coller au lieu de les recréer à nouveau).Cela a fonctionné!
la source
Cela peut se produire si vous avez une table et oubliez d'attribuer UITableViewDelegate et UITableViewDataSource à la classe
la source