核心数据NSPredicate中的日期比较

时间:2014-02-19 14:09:55

标签: objective-c date core-data ios7 nspredicate

在我的应用程序中,我正在使用CoreData。某些日期值作为NSString存储在coredata中。 在我的Interface Builder我有一个文本字段。当我在我的文本字段中输入日期时此日期将比较保存在coredata中的日期。

解决方案是什么。我只是通过这种方式Example它不适用于我的项目,因为我想在我的NSPredicate方法上将字符串转换为日期。

我的代码是

NSPredicate *p3 = [NSPredicate predicateWithFormat:@"acc_date >= %@ AND acc_date<=%@", theDate, date1];

此处acc_date是数据库中的日期,存储为字符串 theDate date1 是我的输入

1 个答案:

答案 0 :(得分:2)

如果您继续将日期存储为字符串,则无法像尝试那样进行任何比较。

如果您将它们存储为实际的NSDate个实例,那么您的比较就可以了。问题不在于您的谓词,而在于您如何将数据存储在Core Data中。

我建议迁移您的数据库,无论是重度迁移还是手动迁移。如果您的数据是一次性的,那么我会更改字段并重置您的数据库以使用NSDate个实例。