1

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

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

4

1 回答 1

1

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

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

在这里阅读所有相关信息。

于 2013-08-02T13:58:30.913 回答