Core data 与岩心数据的关系
(使用swift/Xcode beta 3) 我的项目中有两个实体——一个父实体,它与子实体有一对多的关系。在保存上下文之前添加新对象时,一切正常。但是,在重新启动应用程序并再次获取父对象后,我会收到其所有子对象的“关系错误”。这就是我保存上下文的方式:Core data 与岩心数据的关系,core-data,swift,relationship,Core Data,Swift,Relationship,(使用swift/Xcode beta 3) 我的项目中有两个实体——一个父实体,它与子实体有一对多的关系。在保存上下文之前添加新对象时,一切正常。但是,在重新启动应用程序并再次获取父对象后,我会收到其所有子对象的“关系错误”。这就是我保存上下文的方式: func saveContext () { var error: NSError? = nil let appDel:AppDelegate = UIApplication.sharedApplication().delega
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()
}
我尝试更改includesSubentities=true和setReturnsObjectsAsFaults=false,但似乎没有帮助。对于Objective-C的“关系错误”问题,大多数答案似乎都使用SetRelationshipKeyPaths进行预处理,但在Swift中,将其与NSFetchRequest一起使用似乎是不可能的
有什么我遗漏的吗 正如GeneratorOfOne所说,该故障只是意味着该对象尚未被提取到内存中。你是正确的,你“无法获取这些子对象,仅仅访问它们并不能完成任务。”要获取对象,你必须评估对象的属性,也就是说,实际使用对象的值。这是完全正常的。它会给您错误问题,除非您使用对象,否则它希望加载到内存中,直到您使用它为止关系错误是正常的。就核心数据而言,断层不是真正的对象。它还没有实现,所以当您尝试访问属性时,它会从持久性存储中取出,然后对象就会建立起来。嘿,谢谢您的回答。不幸的是,我无法获取这些子对象,仅访问它们无法完成任务。请向代码演示如何获取父对象及其子对象。@Paweł您找到解决方案了吗?