如何使用大于x天的日期差异过滤NSPredicate

时间:2013-10-02 10:14:39

标签: ios objective-c core-data

我有一个具有两个日期属性(date1和date2)的Core Data模型,并且想要获取所有具有date2 - date1>的对象。 x天。我已经尝试过了:

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"MyEntity"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"date1 != nil AND date2 != nil AND date2 - date1 > %d", x*86400];

我对NSDate的理解是,它只是Unix时间戳的包装器,而Core Data通过内部比较时间戳来比较两个日期。有一天有86400秒,所以上面的谓词对我来说总体上是有意义的,但不知何故它也会返回少于x天差异的对象。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

为什么不将日期差异存储为单独的字段

它将比任何即时计算都快得多。你可以在date的制定者那里做到这一点。