【发布时间】:2012-03-13 04:11:24
【问题描述】:
我正在使用 NSFetchedResultsController 和 UITableViewController 从 CoreData 数据库填充 UITableView。
我有一个NSDate 对象保存到这个标记为“startTime”的日期属性中。然后我尝试使用如下所示的NSPredicate 仅提取今天的数据:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"startDate == %@",
todaysDate];
我得到的结果为零。我理解这一点,因为 NSDate 对象只保存自 1970 年 1 月 1 日以来的秒数或毫秒数,对吗?所以比较 1111111111111 和 1111111111112,而在同一天,是两个不同的 NSDate 不相等的对象。
那么,如何格式化NSPredicate 以便它能够做到这一点?我猜它会创建两个 NSDate 对象:一个是昨晚凌晨 12 点,另一个是今晚凌晨 12 点,然后比较 startDate 看看它是否在这两个 NSDates 之间。
我对@987654331@ 有点陌生,那么如何实现呢?
【问题讨论】:
-
您应该将解决方案放在答案中,而不是将其放在问题中。
-
不能@yuji,因为我还没有足够的代表。
-
也许您可以将您的解决方案放入答案中。同时,我已将其编辑掉,因为您已经接受了 yuji 的回答。您可以通过查看修订历史来恢复您的解决方案。谢谢。
标签: core-data nsdate uitableview nspredicate nsfetchedresultscontroller