我有一个需要本地存储的iPhone应用程序。
我最初的想法是使用核心数据,这对大多数应用来说都很好, 但是主要的一块是在数据上使用聚合。在SQLite中,这是MIN,MAX,AVG,GROUP_BY等的标准用法。
但是核心数据并没有很好地实现这些,因为它主要用于对象图管理。如果我在从CoreData加载后在Obj-C中进行计算,或者我应该坚持使用SQLite并放弃CoreData系统其他部分的有用性,这是否重要?
聚合的集合并不大(最多100个对象)。我需要做分发之类的事情。
我知道这里没有具体的答案,只是想要一些第二选择。感谢
答案 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];
获取相应的托管对象。