如何使用 Date 类型的 NSPredicate
How to use NSPredicate with Date type
我正在尝试根据日期制作 NSPredicate...我试过这个:
let datePredicate = NSPredicate(format: "due_date < %@", Date())
我不确定,但是 iirc,这以前有效吗?
现在我得到这个错误:
Argument type 'Date' does not conform to expected type 'CVarArg'
我这样试过
...Date() as NSDate,
但那也失败了。
如何解决?
您必须将覆盖类型 Date 转换回其对应的 Foundation NSDate
:
let dueDate = Date()
let pred1 = NSPredicate(format: "due_date < %@", dueDate as NSDate)
检查此参考资料
要将当前日期用作谓词参数,只需创建一个 NSDate
实例
let datePredicate = NSPredicate(format: "due_date < %@", NSDate())
对于日期变量,您可以使用
aDate as NSDate
或
aDate as CVarArg
如果您遇到错误
'Date?' is not convertible to 'NSDate'
那么代码不是真正的代码,因为 Date()
和 NSDate()
都是非可选的。
我正在尝试根据日期制作 NSPredicate...我试过这个:
let datePredicate = NSPredicate(format: "due_date < %@", Date())
我不确定,但是 iirc,这以前有效吗?
现在我得到这个错误:
Argument type 'Date' does not conform to expected type 'CVarArg'
我这样试过
...Date() as NSDate,
但那也失败了。
如何解决?
您必须将覆盖类型 Date 转换回其对应的 Foundation NSDate
:
let dueDate = Date()
let pred1 = NSPredicate(format: "due_date < %@", dueDate as NSDate)
检查此参考资料
要将当前日期用作谓词参数,只需创建一个 NSDate
实例
let datePredicate = NSPredicate(format: "due_date < %@", NSDate())
对于日期变量,您可以使用
aDate as NSDate
或
aDate as CVarArg
如果您遇到错误
'Date?' is not convertible to 'NSDate'
那么代码不是真正的代码,因为 Date()
和 NSDate()
都是非可选的。