我正在通过viewDidLoad
方法执行此代码
fetchedResultCont = NSFetchedResultsController(fetchRequest: req,
managedObjectContext: container.viewContext,
sectionNameKeyPath: nil,
cacheName: nil)
文档说,我们可以使用缓存来加快过程,但是没有实现。
有人可以告诉我,如何使用缓存代替缓存名称中的nil来加快过程吗?
答案 0 :(得分:0)
您只需指定一个字符串即可用作缓存目录的名称。
fetchedResultCont = NSFetchedResultsController(fetchRequest: req,
managedObjectContext: container.viewContext,
sectionNameKeyPath: "SectionKey",
cacheName: "MyCache")
但是,由于您没有在获取请求中使用部分,因此缓存不会使您受益:
接收方应使用的缓存文件的名称。传递nil以防止缓存。
预先计算的节信息以该名称缓存到私有目录中。如果Core Data找到使用此名称存储的缓存,则将检查它是否与fetchRequest匹配。如果是这样,将直接加载缓存-避免了计算节和索引信息的开销。如果缓存的信息与请求不匹配,则会在获取数据时删除并重新计算缓存。