Can't pass Date to NSPredicate(format: …) without “as CVarArg”

匿名 (未验证) 提交于 2019-12-03 08:36:05

问题:

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) 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!