6
votes

Application de terminaison due à une exception non capturée 'NsinvalidargumentException', raison: '+ EntityForname: NIL n'est pas un NSManageDObjectContextext

Je reçois un résultat nul pour

Appdelegate.h p> xxx pré>

appdelegate.m p> xxx pré>

i avoir un fichier XCDatamodeld avec une entité de personne et un attribut de nom. J'ai fait une personne.h et .m fichier d'un nsmanagedObject. P>

Pourquoi suis-je obtenir un résultat nul pour ma sortie. P>

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'Person''


5 commentaires

affirmer le MOC. Assurez-vous que le contexte n'est pas nulle. Assurez-vous que la mère est en fait ce que vous attendez aussi!


Assert (Self.ManagedObjectContext);


NSLOG (@ "% @", Self.ManageDObjectModel.EnitiesByname);


L'affirmation a échoué: (Self.ManagedObjectContext), fonction - [L'application Appdelegate est ce que je reçois après l'affirmation (Self.ManagedObjectContext);


Montrez la méthode où vous créez le gantEdObjectContext.


4 Réponses :


2
votes

J'ai réalisé que, étant donné que je n'ai pas ajouté de données de base lorsque j'ai créé à l'origine le projet, il manquait un code automatiquement généré lorsque l'option Core Données est cochée. Ainsi, lorsque j'ai suivi des tutoriels en ligne, ce code généré automatiquement est supposé. C'est là que je suis gêné.


2 commentaires

Je suis confronté au même scénario. J'ai ajouté manuellement le code pour utiliser les données de base et maintenant avoir le même problème que vous le faites. Pouvez-vous s'il vous plaît partager les tutoriels que vous avez suivis?


Regardez ici si les personnes futures ayant des problèmes à ce sujet: Stackoverflow.com/questions/8076103/...



12
votes

Dans votre fichier ViewController.m Fichier de mise en œuvre, juste sous ce bit de code:

id delegate = [[UIApplication sharedApplication] delegate];
    self.managedObjectContext = [delegate managedObjectContext];


0 commentaires

1
votes

Assurez-vous que le code qui fonctionne lorsque l'exception est augmenté est en cours d'exécution sur le même thread que vous avez créé le contexte de l'objet géré.


0 commentaires

0
votes

Si vous utilisez un modèle de projet utilisant NSPersistentContainer, assurez-vous de l'exécuter sur iOS 10+ ou d'échouer silencieusement avec l'initialisation et l'accident lorsque vous effectuez une sorte de fonctionnement de données de base.


0 commentaires