没有“as CVarArg”,无法将日期传递给NSPredicate(格式:...)

时间:2016-09-20 06:22:45

标签: ios swift nsdate nspredicate swift3

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

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

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

1 个答案:

答案 0 :(得分:50)

%@格式期望 Foundation对象作为参数,比较 "谓词编程指南中的"Predicate Format String Syntax""。

因此,您必须将叠加层类型Date强制转换回其基础 对应NSDate

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