Swift CoreData: erreur: Échec de l'appel désigné initialiseur sur NSManagedObject de la classe de NSManagedObject'

Je suis une utilisation de base de données pour enregistrer une catégorie dans vc1 et souhaitez ajouter des propriétés de la liste pour une liste dans vc2. Mon modèle de données est une catégorie à de nombreuses propriétés de la liste.

Je suis en ajoutant la catégorie de ce genre dans vc1:

func createNewCategory() {
    var category: NSManagedObject! = NSEntityDescription.insertNewObjectForEntityForName("Category", inManagedObjectContext: self.context) as NSManagedObject
    category.setValue(self.categoryTextField.text, forKey: "name")

    var error: NSError? = nil
    self.context.save(&error)
}

Réglage des données dans vc2:

func setupCoreData() {
    var appDelegate: AppDelegate = (UIApplication.sharedApplication()).delegate as AppDelegate
    self.context = appDelegate.managedObjectContext!

    var request: NSFetchRequest = NSFetchRequest(entityName: "Category")
    if (self.context.executeFetchRequest(request, error: nil)) {
        var error: NSError? = nil
        self.listData = self.context.executeFetchRequest(request, error: &error)
        self.managedObject = self.listData.objectAtIndex(0) as NSManagedObject
    }
}

Il se bloque sur la dernière ligne: self.managedObject = ... disant:

CoreData: error: Failed to call designated initializer on NSManagedObject class 'NSManagedObject' 

L'objet géré est dans le tableau si j'ai mis un point de rupture et imprimer le tableau. Quel est le problème?

Vous êtes l'exécution de la demande de récupération à deux reprises. Pourquoi?
J'ai été vérifier si elle a existé, mais il semblait fonctionner sans elle...
Le test vérifie juste si le fetch renvoie un tableau, même vide.
Ok, bon à savoir. Je suis un novice comme vous pouvez le dire 🙂 Merci pour votre aide.

OriginalL'auteur Johannes Olsson | 2014-08-26