Xcode 4.5 corrompant les XIB?

J’utilise le nouveau xcode 4.5, j’ai ces lignes de code sur certains contrôleurs de vue:

DiscoverCell* cell=[table dequeueReusableCellWithIdentifier:@"DiscoverCell"]; if(cell==nil){ NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DiscoverCell" owner:self options:nil]; cell = [nib objectAtIndex:0]; } 

lorsque je lance l’application, elle lance: Application de terminaison en raison d’une exception non capturée ‘NSInternalInconsistencyException’, raison: ‘Les données NIB ne sont pas valides.’ sur la ligne LoadNib, c’est quoi? Est-ce que ce xcode est une poubelle de pomme?

Décochez la case “utiliser Autolayout” surlignée dans l’image ci-dessous. Xcode 4.5 active cette propriété par défaut pour les nouveaux fichiers nib que vous ajoutez dans votre projet. Décocher la case à cocher autolayout a résolu le problème

J’ai eu ce même problème et corrigé en décochant la case à cocher “Utiliser Autolayout” sur le volet Inspecteur de document dans Utilitaires.

Je viens d’avoir ce problème et l’ai suivi jusqu’à un UIButton dont le champ Title était Atsortingbué dans l’inspecteur d’atsortingbuts. Changer ceci en Plain a corrigé le problème. Si je me souviens bien, j’ai ajouté ce bouton dans la dernière version de Xcode et j’ai également eu des problèmes avec lui.

Pour moi, c’était une combinaison du commentaire de Jason Coco et de la réponse de tomgerhardt: Mon application cible iOS5, j’ai évolué vers Xcode 4.5 et créé une nouvelle NIB. Par défaut, iOS6 ciblé, provoquant un plantage. Je mets cela sur iOS5 dans la fenêtre de l’inspecteur de fichiers de la NIB.

Ensuite, j’ai reçu une erreur de compilateur qui m’a dit que l’utilisation d’Autolayout n’était pas prise en charge pour iOS5.

J’utilise Xcode 4.5 et iPhone simulator 5.0 et c’est la même erreur lorsque la première table a été affichée. Suite au conseil “Uncheck autolayout”, je l’ai fait fonctionner en passant de la gestion des versions de documents à iOS 5.0. (Storyboard sélectionné -> onglet Identification de fichier -> Document du générateur d’interface -> Gestion des versions de document.) La mise en forme automatique était déjà désélectionnée.

Donc, après environ une heure d’essayer de comprendre cela, j’ai compris le problème. C’est en effet ce qui est décrit ci-dessus: assurez-vous que votre .xib est définie sur la même version cible (dans ce cas, probablement <6.0) que celle pour laquelle votre application principale a été sélectionnée, et décochez "Utiliser Autolayout" .xib particulier.

La raison pour laquelle cela fonctionnera dans le simulateur est que votre simulateur exécute réellement iOS6. En essayant d’utiliser un périphérique avec un iOS plus ancien, entraînera cette erreur. Mon problème était, je créais un TableViewCell personnalisé qui était ciblé par défaut pour iOS 6 et dont l’option “Use Autolayout” était activée. C’était le coupable pour moi.

J’espère que je peux sauver quelqu’un du chagrin que j’ai subi avec cette erreur!

Après la désactivation de la mise en forme automatique pour tous mes fichiers .xib, l’erreur était toujours présente. Cela était dû au fait que j’ai utilisé Texte -> Atsortingbué pour un UILabel dans un fichier .xib.

Après l’avoir paramétré sur Plain, l’erreur a disparu.

Le nom après “loadNibNamed:” doit être le nom du fichier nib (dans le navigateur de projet sur le côté gauche de l’écran), parfois, les gens écrivent “identifiant de cellule” .

Peut-être votre problème dans cette petite faute?