我们如何为核心数据对象获取唯一的日历日期?
例如: 如果我们有三个具有NSDates的情感对象:
"2014-08-04 20:33:42 +0000",
"2014-08-04 20:50:33 +0000",
"2014-08-04 20:50:46 +0000",
"2014-08-06 20:35:58 +0000",
"2014-08-08 20:33:49 +0000"
我想获得一个看起来像这样的NSDates数组:
2014-08-04
2014-08-06
2014-08-08
我已经将这些线程作为可能的解决方案进行了探索,但它们都不起作用。
可能的做法是为我正在搜索的托管对象创建时间和日期属性,但这似乎是一项笨重的工作。
另一种可能性是剥离所有NSDate的时间分量,然后再次过滤Dates数组以获得重复。再次,这似乎非常笨重,容易破裂。
我想获得一个只有日历日期的NSDates数组,然后使用该信息来呈现tableview单元格。当用户点击给定的tableView单元格时,我可以推送一个显示与该日历日期相关的数据的viewController。随着时间的推移,NSDates的数量可能会变得很大,因为有许多NSDates的对象需要搜索,因此解决方案应该是有效的。
答案 0 :(得分:0)
您将不得不使用与您描述的方法类似的方法,因为这就是它需要完成的方式。
您正在存储NSDate
值,但NSDate
实际上并不代表某个日期 - 它代表一个特定的时刻,即一秒钟(它可能如果它被称为NSDateTime
之类的东西会更好,但它不是。它实际上是NSTimeInterval
周围的对象包装器,只是double
。核心数据只保存此值,必要时自动转换为NSDate
。因此,您的示例数据实际上并不具有唯一的日历日期。一天中的时间不同,这意味着每个样本值代表持久性存储中的不同double
值。
如果您想要唯一的日期值,则需要添加仅编码日期的字段,或者获取所有NSDate
样式属性并过滤结果。我可能会先使用 - 存储您实际需要查找的数据 - 但这两种方法都可以正常工作。