Can't pass Date to NSPredicate(format: …) without “as CVarArg”
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: 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