问题
Is this how I'm supposed to pass a Date
to NSPredicate.init(format predicateFormat: String, arguments argList: CVaListPointer)
.
let endDate = Date()
NSPredicate(format: "endDate == %@", endDate as CVarArg)
It looks kinda clumsy, and I suspect I'm doing something wrong.
回答1:
The %@
format expect a Foundation object as argument, compare
"Predicate Format String Syntax" in the "Predicate Programming Guide".
Therefore you have to cast the overlay type Date
back to its Foundation
counterpart NSDate
:
let endDate = Date()
let pred = NSPredicate(format: "endDate == %@", endDate as NSDate)
来源:https://stackoverflow.com/questions/39587046/cant-pass-date-to-nspredicateformat-without-as-cvararg