Ошибка связи с основными данными

(с использованием быстрой /Xcode beta 3)

У меня есть два объекта в моем проекте - родительский объект, который имеет отношения "один ко многим" со своими дочерними элементами. При добавлении новых объектов перед сохранением контекста все работает нормально. Однако после перезапуска приложения и получения родительского объекта снова я получаю "связь с ошибкой" для всех своих детей. Вот как я сохраняю свой контекст:

 func saveContext () {
    var error: NSError? = nil
    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let context =  appDel.managedObjectContext

    if context == nil {
        return
    }
    if !context.hasChanges {
        return
    }
    if context.save(&error) {
        return
    }

    println("Error saving context: \(error?.localizedDescription)\n\(error?.userInfo)")
    abort()
}

Я попытался изменить includeSubentities = true и setReturnsObjectsAsFaults = false, но, похоже, это не помогает. Большинство ответов на проблему "ошибка связи" с Objective-C, казалось, использовало setRelationshipKeyPathsForPrefetching, но использование его с NSFetchRequest в Swift кажется невозможным.

Есть ли что-то, что мне не хватает?

Ответ 1

Как говорит GeneratorOfOne, ошибка только означает, что объект еще не загружен в память. И вы правы, что вы "не можете получить эти дочерние объекты, чтобы их получить, и простой доступ к ним не выполняет эту работу". Чтобы вызвать объект, вы должны оценить свойство объекта, то есть фактически использовать значение из объекта.

Ответ 2

Это нормально. Это дает вам проблему с отказом, если вы не используете объект, он хочет загрузить в память до тех пор, пока вы не будете использовать его