gpt4 book ai didi

iphone - 是否需要缓存CoreData返回的数据?

转载 作者:行者123 更新时间:2023-12-03 20:47:05 25 4
gpt4 key购买 nike

我使用 CoreData 将数据存储在 iPhone 应用程序中。存储的数据旨在表示一棵树,每个记录都是一个节点(带有指向其父节点的指针)。当用户浏览这棵树时,我将当前的父级和当前的子级集缓存在 NSArray 中。我最初认为这是有道理的,因为它可以允许更快地访问同级节点(当数据显示在 UITableView 中并且用户滚动时很有用)。我觉得每次需要下一个子项时使用 CoreData 执行“获取所有子项”查询效率很低(即我会对 n 个子项进行 n 次相同的查询,并且每次只返回第 i 个结果)。

现在,我不太确定这是必要的还是明智的(主要是因为我了解到 CoreData 是一个我尚未完全理解的野兽)。
有谁知道这是否是好的做法?我知道 CoreData 免费做了很多事情,包括缓存结果,但由于我知道我的数据将像树一样使用,我的实现(或其他一些 CoreData 之外的缓存实现)会更高效吗?

最佳答案

当您使用 coredata 和 UITableView 时,您应该使用 NSFetchedResultsController 。它会为您完成所有缓存工作,并且肯定比您做得更好。
fetchedResultsController 还负责 coredata 对象的删除、更改和插入,即它告诉您何时更新 tableview。但要使后者发挥作用,您必须设置 fetchedresultscontroller 委托(delegate)方法。 documentation 中包含委托(delegate)函数的完整示例。 .

一般来说,摆脱缓存,这是没有必要的。

关于iphone - 是否需要缓存CoreData返回的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4976740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com