用于iOS聚合的CoreData或SQLite

时间:2011-12-09 15:19:45

标签: iphone ios sqlite core-data fmdb

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

我在我的应用程序中使用Core Data和FMDB(一个围绕SQLite的Objective-C包装器),它工作正常。核心数据在表格和字段名称前添加“Z”,例如,如果您有一个名为“联系人”的核心数据实体,则可以执行SELECT COUNT(*) FROM ZCONTACTS之类的查询,它会返回结果SQL查询。

答案 1 :(得分:0)

就个人而言,只要“大多数应用程序”不使用MIN,MAX,AVG,我就会留在CoreData中......因为那时“大多数应用程序”仍然与SQLite相比仍然很多。

答案 2 :(得分:0)

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

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

获取相应的托管对象。