我是开发iPhone的新手,我正在使用Core Data进行数据管理。我的托管对象有一个名为creationDate的属性,我需要有一个数据库中所有不同日期的列表。为了减少我设置的开销
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:@“creationDate”]];
因为这就是所需要的。
我知道我可以设置[fetchRequest setReturnsDistinctResults:YES];获取不同的日期,但如何才能在获取请求中仅使用NSDate的日期部分?
感谢,
托马斯
P.S。在SQL中,这看起来像:SELECT DISTINCT DATE(creationDate)FROM events;
答案 0 :(得分:4)
通过“NSDate的日期部分”我假设你的意思与时间不同?如果商店中的条目具有编码时间,则无法直接表达出于不同结果的目的。您可以做的是将模型中的creationDate拆分为两个属性,日期和时间,并将所有日期标准化为一次(或者如果您不关心可以浪费时间的时间)。如果你真的还需要时间,那么你可以完全根据日期进行查询。
如果您的实体有自己的子类,您可以通过编写一个获取数据的自定义setter,通过NSDateComponents提取组件,然后通过NSCalendar将它们重新组合成日期来实现。
是的,似乎处理日期应该更简单,但有必要采取一些稍微迂回的道路。