没有 "as CVarArg" 无法将 Date 传递给 NSPredicate(format: ...)

Can't pass Date to NSPredicate(format: ...) without "as CVarArg"

这就是我应该如何将 Date 传递给 NSPredicate.init(format predicateFormat: String, arguments argList: CVaListPointer) 的方式吗?

let endDate = Date()
NSPredicate(format: "endDate == %@", endDate as CVarArg)

看起来有点笨拙,我怀疑我做错了什么。

%@ 格式期望 Foundation 对象 作为参数,比较 "Predicate Format String Syntax" 在 "Predicate Programming Guide".

因此你必须将覆盖类型 Date 转换回它的 Foundation 对方 NSDate:

let endDate = Date()
let pred = NSPredicate(format: "endDate == %@", endDate as NSDate)