gpt4 book ai didi

ios - 像 NSFetchedController 在 FMDB 的 Core Data 中使用的那样缓存结果

转载 作者:行者123 更新时间:2023-11-29 13:08:18 26 4
gpt4 key购买 nike

我想保留核心数据以使用 FMDB,但如果可能的话我想知道一些信息,在核心数据中重新加载 TableView 有 NSFetchedController,它不会重新加载每次数据,但在必要时重新加载它,所以 UITableView 的重新加载非常快(或者我认为这样做可能我错了)在我的项目中我有一个 UITableView 从在数据库中查询,所以每次我调用查询数据库的方法时,在 ViewWillAppear 中,将信息插入数组并重新加载 TableView ,但是当 TableView 中的行增加时, View 需要时间才能出现,而不是在Core Data View 显示更快,所以我的问题是,有没有办法缓存数据?检查是否有变化并需要再次进行查询?

另一个问题,为了使查询更快,我添加了一些索引,我还必须为主键创建一个索引吗?

最佳答案

我建议您首先熟悉一些基本概念:

  • “FMDB 中的核心数据”是不可能的。 FMDB 是 SQLite api 的包装器,而不是 Core Data。 Core Data 是一个对象图,而不是数据库。
  • 如果您想使用 Core Data,请放弃 FMDB(我推荐)。
  • 在 Core Data 中,获取的结果 Controller 使用缓存机制,使表非常快速和高效地使用资源。
  • 在 Core Data 的托管对象模型编辑器中,您可以轻松地将属性标记为索引以加快获取速度。
  • Core Data 有更多的机制来提高性能,例如获取批量大小错误获取请求模板
  • Core Data 使用外键,而是使用所谓的关系。外键概念是完全隐藏的,只是一个实现细节。您应该了解关系数据库 (SQLite) 和对象图 (Core Data) 之间的区别。

阅读所有相关信息 here .

关于ios - 像 NSFetchedController 在 FMDB 的 Core Data 中使用的那样缓存结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18014848/

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