iPhone Core Data 获取日期操作

标签 iphone objective-c core-data

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

[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:@"creationDate"]];

因为这就是所需要的。

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

谢谢

托马斯

附注在 SQL 中,这看起来像: SELECT DISTINCT DATE(creationDate) FROM events;

最佳答案

“NSDate 的日期部分”我认为您的意思是与时间不同?如果商店中的条目具有时间编码,则您无法直接表达这一点以获得不同的结果。您可以做的是将模型中的creationDate拆分为两个属性:日期和时间,并将所有日期标准化为单个时间(或者如果您不关心时间,则可以丢弃时间)。如果您实际上仍然需要时间,它就在那里,但您可以纯粹根据日期进行查询。

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

是的,看起来处理日期应该更简单,但是需要采取一些迂回的方式。

关于iPhone Core Data 获取日期操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1152512/

相关文章:

iphone - 分段表转 JSON

ios - 将 Web 服务响应数据分配给 NSManagedObject 子类

ios - 根据方法的调用方式, block 的行为有所不同

iphone - UICollectionReusableView 使用动画更改标题高度

iphone - 从类方法中将委托(delegate)设置为 "self"

iphone - 使用 unicode 的分数的 NSString 表示

iphone - 来自 iphone 应用程序的定位服务

iphone - Apple iTunes 附属计划 - 歌曲链接元数据?

iphone - 如何在iPhone的速度计中旋转图像

objective-c - 核心数据 moc 重置会导致 Lion 出现故障,而 Snow Leopard 则正常