Ошибка связи с основными данными
(с использованием быстрой /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
Это нормально. Это дает вам проблему с отказом, если вы не используете объект, он хочет загрузить в память до тех пор, пока вы не будете использовать его