coredata获取请求中的日期比较?
Posted
技术标签:
【中文标题】coredata获取请求中的日期比较?【英文标题】:Date comparison in coredata fetch request? 【发布时间】:2013-11-18 19:19:50 【问题描述】:在我的应用程序中,我使用的是 coredata。我的“作业”表中有一个 NSDate 类型的 endDate 字段。我想从 'Job' 中获取 endDate 小于当前日期的所有记录? 任何帮助都将是可观的
【问题讨论】:
【参考方案1】:您可以在获取请求中设置这样的谓词:
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"endDate < %@", [NSDate date]]];
【讨论】:
感谢您的回复。但是,当我尝试您的代码时,应用程序会因异常 '-[__NSCFString timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x9a727f0 而崩溃 这个谓词只是从工作代码中复制而来。请分享您的获取请求的完整代码和您的实体描述。 @Jeff:这可能意味着您的endDate
属性存储为字符串,而不是日期。
3 个问题:不确定是否存在问题,但为什么要在谓词中使用单引号 ''? ('%@'
应该是 %@
)。你能确认你的 endDate 是 NSDate 类型吗?据我所知,获取请求需要一个实体 (fetchRequest setEntity:
)。
啊..您应该删除谓词中的[NSString stingWithFormat:]
。只需使用我提到的确切谓词即可。以上是关于coredata获取请求中的日期比较?的主要内容,如果未能解决你的问题,请参考以下文章
在 NSFetchedResultsController 中使用 Predicate 与 CoreData 进行日期比较
我想从 Java 日期中获取年、月、日等,以与 Java 中的公历日期进行比较。这可能吗?