3

我有一个需要本地存储的 iPhone 应用程序。

我最初的想法是使用核心数据,这对于大多数应用程序来说都很好,但是主要部分是在数据上使用聚合。在 SQLite 中,这是 MIN、MAX、AVG、GROUP_BY 等的标准用法。

但是核心数据并没有很好地实现这些,因为它主要用于对象图管理。如果我从 CoreData 加载后在 Obj-C 中进行计算,还是应该坚持使用 SQLite 并放弃 CoreData 系统其他部分的用处?

用于聚合的集合并不大(最多 100 个对象)。我需要做分配之类的事情。

我知道这里没有具体的答案,只是想要一些第二种选择。谢谢

4

3 回答 3

1

我在我的应用程序中同时使用了 Core Data 和 FMDB(一个围绕 SQLite 的 Objective-C 包装器),它运行良好。Core Data 在您的表和字段名称前添加了一个“Z”,因此,例如,如果您有一个名为 Contacts 的 Core Data 实体,您可以执行诸如此类的查询SELECT COUNT(*) FROM ZCONTACTS,它将返回 SQL 查询的结果。

于 2011-12-09T16:07:28.680 回答
0

就我个人而言,只要“大部分应用程序”不使用 MIN、MAX、AVG...,我就会继续使用 CoreData,因为那时使用 SQLite 时,“大部分应用程序”仍然很多。

于 2011-12-09T15:30:33.273 回答
0

你可以同时使用。首先聚合您的数据,选择 id 并使用

NSManagedObjectContext context; // Get it some how
NSManagedObject *obj = [context objectWithID:objectID];

获取对应的托管对象。

于 2011-12-09T15:35:19.060 回答