iPhone核心数据获取日期操作

时间:2009-07-20 09:11:52

标签: iphone objective-c core-data

我是开发iPhone的新手,我正在使用Core Data进行数据管理。我的托管对象有一个名为creationDate的属性,我需要有一个数据库中所有不同日期的列表。为了减少我设置的开销

[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:@“creationDate”]];

因为这就是所需要的。

我知道我可以设置[fetchRequest setReturnsDistinctResults:YES];获取不同的日期,但如何才能在获取请求中仅使用NSDate的日期部分?

感谢,

托马斯

P.S。在SQL中,这看起来像:SELECT DISTINCT DATE(creationDate)FROM events;

1 个答案:

答案 0 :(得分:4)

通过“NSDate的日期部分”我假设你的意思与时间不同?如果商店中的条目具有编码时间,则无法直接表达出于不同结果的目的。您可以做的是将模型中的creationDate拆分为两个属性,日期和时间,并将所有日期标准化为一次(或者如果您不关心可以浪费时间的时间)。如果你真的还需要时间,那么你可以完全根据日期进行查询。

如果您的实体有自己的子类,您可以通过编写一个获取数据的自定义setter,通过NSDateComponents提取组件,然后通过NSCalendar将它们重新组合成日期来实现。

是的,似乎处理日期应该更简单,但有必要采取一些稍微迂回的道路。