coredata NSPredicate 中的日期比较
Posted
技术标签:
【中文标题】coredata NSPredicate 中的日期比较【英文标题】:Date comparison in coredata NSPredicate 【发布时间】:2014-02-19 14:09:55 【问题描述】:在我的应用程序中,我使用的是CoreData
。一些日期值在 coredata 中存储为NSString
。
在我的Interface Builder
中,我有一个文本字段。当我在我的文本字段中输入日期时,此日期将比较保存在 coredata 中的日期。
解决方案是什么。我只是通过这种方式Example 它不适用于我的项目,因为我想在我的NSPredicate
方法上将字符串转换为日期。
我的代码是
NSPredicate *p3 = [NSPredicate predicateWithFormat:@"acc_date >= %@ AND acc_date<=%@", theDate, date1];
这里acc_date
是数据库中存储为字符串theDate 的日期,date1 是我的输入
【问题讨论】:
我想将值与 coredata 进行比较 将 'acc_date' 存储为 'NSDate' 以便您轻松比较 【参考方案1】:如果您继续将日期存储为字符串,那么您将无法进行任何类型的比较,就像您正在尝试的那样。
如果您将它们存储为实际的 NSDate
实例,那么您的比较将起作用。问题不在于您的谓词,而在于您如何在 Core Data 中存储数据。
我建议迁移您的数据库,无论是使用大量迁移还是手动迁移。如果您的数据是一次性的,那么我会更改字段并重置您的数据库以使用 NSDate
实例。
【讨论】:
我明白这个问题。我只是将字符串更改为数据格式以上是关于coredata NSPredicate 中的日期比较的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSPredicate 按日期过滤 coredata 不返回任何内容