本文介绍了无法将日期传递给NSPredicate(格式:...)而不使用“as CVarArg”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我应该如何将 Date
传递给 NSPredicate.init(格式谓词格式:字符串,参数argList:CVaListPointer)
。
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.
推荐答案
%@
格式需要基础对象作为参数,比较
。
The %@
format expect a Foundation object as argument, compare"Predicate Format String Syntax" in the "Predicate Programming Guide".
因此您必须投射叠加类型日期
回到它的基金会
对应 NSDate
:
Therefore you have to cast the overlay type Date
back to its Foundationcounterpart NSDate
:
let endDate = Date()
let pred = NSPredicate(format: "endDate == %@", endDate as NSDate)
这篇关于无法将日期传递给NSPredicate(格式:...)而不使用“as CVarArg”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!