ios - 日期比较 NSPredicate

标签 ios core-data nspredicate

案例一:

[NSPredicate predicateWithFormat:@" end_time < '2015-07-27 06:22:43 +0000'"]

坠毁

reason: '-[__NSCFString timeIntervalSinceReferenceDate]: unrecognized selector

案例二:

[NSPredicate predicateWithFormat:@" end_time < 2015-07-27 06:22:43 +0000"]

坠毁

 reason: 'Unable to parse the format string " end_time < 2015-07-27 06:22:43 +0000"'

案例三:

[NSPredicate predicateWithFormat:@" end_time < %@",[NSDate date]

有效!

谁能给我解释一下这三者的区别。

最佳答案

第一种情况:

endTime < '2015-07-27 06:22:43 +0000' .我确定 endTime 的数据类型是NSDate .运行时也尝试将 rhs 视为日期对象并尝试进行比较。但它是一个字符串。崩溃。

第二种情况:

这只是错误的语法。 2015-07-27 后有一个空格.运行时不知道如何解析它。碰撞。

(即使您的谓词是 [NSPredicate predicateWithFormat:@"end_time < 2015-07-27"] ,它也是一种有效的谓词格式。但会因为 unrecognized selector 上的 NSNumber 而崩溃?我不确定。)

第三种情况:

rhs 是一个日期对象。 lhs 是一个日期对象。 timeIntervalSinceReferenceDateNSDate 上调用实例。有效。

关于ios - 日期比较 NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647494/

相关文章:

ios - 设备旋转时的 UIWebView 显示和触摸区域

ios - UITableViewCell 用动画填充颜色

ios - 删除行: error 'Invalid update: invalid number of rows in section 0'

iPhone编程-后台保存核心数据

ios - 从 NSPredicate 访问实体时的 EXC_BAD_ACCESS

ios - 为什么 PFRelation 不支持 fromLocalDataStore 查询?

ios - Swift 和 Sprite Kit - 如何测量 Sprite 移动的总距离?

iphone - 使用 NSPredicate 从关系中检索核心数据中的信息

cocoa - 使用 nspredicate 使用字典过滤数组失败

ios - Coredata 在部分中获取和分组对象