web-dev-qa-db-fra.com

Impossible de transmettre la date à NSPredicate (format: ...) sans "as CVarArg"

Est-ce ainsi que je suis censé passer un Date à NSPredicate.init(format predicateFormat: String, arguments argList: CVaListPointer).

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

Ça a l'air un peu maladroit, et je pense que je fais quelque chose de mal.

27
netigger

Le %@ format attend un objet Foundation comme argument, comparez "Predicate Format String Syntax" dans le "Predicate Programming Guide".

Par conséquent, vous devez convertir le type de superposition Date dans son homologue Foundation NSDate:

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