92 votes

presentViewController: blocage sur iOS <6 (AutoLayout)

C'est un crash étrange que je reçois. Le crash se produit lorsque j'appuie sur un bouton permettant d'accéder à un certain ViewController. La ligne sur laquelle il se bloque est la suivante:

 DestinationInformationViewController *info = [[DestinationInformationViewController alloc] init];
[info setModalTransitionStyle: UIModalTransitionStyleCrossDissolve];
[self presentViewController:info animated:YES completion: nil]; // CRASHES HERE
[info release];
 

La trace de l'accident est:

*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' *** First throw call stack: (0x3758288f 0x35287259 0x37582789 0x375827ab 0x3153d54d 0x3153d6bb 0x3153d423 0x314ce001 0x3143c3c7 0x31319c59 0x3128fc17 0x3129a267 0x3129a1d5 0x3133959b 0x31338367 0x84091 0x374dc3fd 0x31271e07 0x31271dc3 0x31271da1 0x31271b11 0x31272449 0x3127092b 0x31270319 0x31256695 0x31255f3b 0x33c9822b 0x37556523 0x375564c5 0x37555313 0x374d84a5 0x374d836d 0x33c97439 0x31284cd5 0x82bb3 0x71200) terminate called throwing an exception(gdb) Could not instantiate class named NSLayoutConstraint

REMARQUE: ceci se bloque sur mon iPhone 4 iOS 5.1 mais pas sur mon iPhone 4S iOS 6 Bêta 2

202voto

Mark Points 2380

Je crois que c'est un problème avec Xcode nouvelle interface builder. Avez-vous arriver à construire votre .xib à l'aide de Xcode 4.5 interface builder? J'ai rencontré ce même problème tout à l'heure, et je pense que c'est le problème. Mon application fonctionne sur iOS 6, mais rien de plus.

Et vous devez assurez-vous de désactiver "utiliser la mise en page automatique" pour vos plumes.

Qui peut être fait par

Dans l'écran principal de votre xib, sous Inspecteur de Fichiers de l'onglet, dans Interface builder section de Document sur le droit de la barre d'outils. Il y a une case à cocher "Utiliser la mise en forme automatique"

44voto

Dejan Balaban Points 456

ScreenShot

J'ai eu le même problème quand j'ai téléchargé la nouvelle mise à jour de XCode et IOS6 SDK.

Sélectionnez l'Interface du générateur de fichier (si xib ou d'un scénario de fichier) où l'erreur se produit. En assistant monteur sur de droite dans XCode, sélectionnez le premier onglet en partant de la gauche, et qu'il faut cocher l'option "Utiliser la mise en forme automatique" comme sur la capture d'écran ci-dessus. Décochez la case.

Qui a résolu le problème dans mon cas.

En ce qui concerne meilleur.

4voto

gIsaza Points 213

Nagaraja demande "Comment résoudre le même si nous n'utilisons pas xib? J'ai rencontré exactement ce problème. J'ai créé un contrôleur avec un xib, puis j'ai décidé de supprimer le fichier xib. Le crash ne s'est pas dissipé. Le problème était que je devais mettre en œuvre

 - (void) loadView
 

dans ma classe de contrôleur. Une fois que j'ai implémenté cette méthode, le problème a été résolu.

1voto

Chris Walken Points 134

Une autre raison possible d'un crash avec presentViewController est que quelque chose dans le nib est connecté à une variable qui n'est plus présente: la variable dont le nom a été modifié ou a été supprimée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X