Отношение CoreData To-One: объект равен нулю после повторного запуска приложения - PullRequest
1 голос
/ 15 марта 2020

Я создаю объект и его отношения, все работает нормально, но после перезапуска приложения отношения теряются. Искал и пробовал несколько вещей, которые я нашел в Интернете и здесь, но безуспешно.

Существует объект с именем DbTopi c, который является объектом, который пользователь сохраняет в избранном. Я создал объект с именем DbFavorite, который имеет отношение к DbTopi c.

Это мой код:

func addToFavorites(topic: DbTopic) {
    let favObject = NSEntityDescription.insertNewObject(forEntityName: "DbFavorites", into: self.managedObjectContext()) as! DbFavorites
    favObject.topicId = topic.id
    favObject.topic = topic
    topic.favorite = favObject

    do {
        try self.managedObjectContext().save()
    } catch {
        fatalError("DEBUG: Failure while saving context: \(error)")
    }
}

ManagedObjectContent:

func managedObjectContext() -> NSManagedObjectContext {
    return persistentContainer.viewContext
}

Сохранить контекст:

func saveContext () {
    let context = persistentContainer.viewContext
    if context.hasChanges {
        do {
            try context.save()
        } catch {
            // Replace this implementation with code to handle the error appropriately.
            // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
            let nserror = error as NSError
            fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
        }
    }
}

После перезапуска приложения я пытаюсь распечатать объекты, сохраненные в DbFavorite, есть объекты с .topi c, равными нулю.

Это отношения:

enter image description here enter image description here

...