读取CoreData时出现罕见错误:数据:CoreData结果中的<fault>

时间:2016-02-19 15:47:32

标签: ios objective-c swift core-data

我的项目中很少发生错误(例如每100个请求)。我的部分CoreData的请求有data:<fault>,我无法使用该数据。我真的不明白为什么会发生这种情况以及如何防止这种行为。

错误的数据输出示例:

<NSManagedObject: 0x147ea09b0> (entity: ToDo; id: 0xd000000002f40000 <x-coredata://7B4FEA6E-1B36-467E-BE14-53CC2EE8CE21/ToDo/p190> ; data: <fault>)

正常输出类似于:

<NSManagedObject: 0x147ea0790> (entity: ToDo; id: 0xd000000002f40000 <x-coredata://7B4FEA6E-1B36-467E-BE14-53CC2EE8CE21/ToDo/p189> ; data: {
    created = "2016-02-19 15:04:42 +0000";
    text = "Some Text";
})

我通过以下方式获取数据:

 let fetchRequest = NSFetchRequest(entityName: "Example")

 var examples:[NSManagedObject]

 do {
            let results =
            try self.managedContext.executeFetchRequest(fetchRequest)
            examples = results as! [NSManagedObject]
 } catch let error as NSError {
            print("Could not fetch \(error), \(error.userInfo)")
 }

问题出在结果的例子中。代码不会跳转到catch语句中。示例与预期数据具有相同的长度。在我的下一个请求中,所有数据仍然存在。什么都没有丢失。唯一的问题是这个数据对于这个唯一的请求是空的。

我的问题出在Swift上。但我猜Objective C可能会遇到同样的问题。

一切都有帮助。提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用

fetchRequest.returnsObjectsAsFaults = false

当您访问对象时使用

print(yourObject.valueForKey("yourKey")