Core Data 数据获取、变更与保存全解析
一、异步获取请求
在处理数据时,我们常常需要一次获取一小批对象,并且可能马上就需要这批数据,比如用于填充表格或集合视图。到目前为止,我们使用的执行获取请求的 API 是同步的,即调用会阻塞,直到结果返回。不过,还有一个 API 可用于异步执行获取请求。这样,调用会立即返回,程序会继续运行,而 Core Data 会在后台获取数据。结果准备好后,会回调通知我们。
以下是异步获取请求的示例代码:
let fetchRequest = NSFetchRequest<Mood>(entityName: "Mood")
let asyncRequest = NSAsynchronousFetchRequest(
fetchRequest: fetchRequest) { result in
if let result = result.finalResult {
// 结果已准备好!
}
}
try! context.execute(asyncRequest)
异步获取请求可以使用普通获取请求的所有功能,并且还与 NSProgress API 集成,我们可以使用它来监控进度,甚至取消正在进行的请求。这在对大型数据集执行昂贵的获取请求时非常有用,例如使用非简单谓词进行搜索,可能结果返回时已经不需要了。
二、关系与关系故障
获取托管对象并非只有获取请求这一种方式。实际上,很多时候应避免使用获取请求。另一种方法是遍历关系属性来获取所需对象。 </
超级会员免费看
订阅专栏 解锁全文
999

被折叠的 条评论
为什么被折叠?



