如果没有“as CVarArg”,则无法将日期传递给 NSPredicate(format: ...)

Posted

技术标签:

【中文标题】如果没有“as CVarArg”,则无法将日期传递给 NSPredicate(format: ...)【英文标题】:Can't pass Date to NSPredicate(format: ...) without "as CVarArg" 【发布时间】:2017-01-27 23:05:42 【问题描述】:

这就是我应该将Date 传递给NSPredicate.init(format predicateFormat: String, arguments argList: CVaListPointer) 的方式吗?

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

它看起来有点笨拙,我怀疑我做错了什么。

【问题讨论】:

【参考方案1】:

%@ 格式需要一个 Foundation 对象 作为参数,比较 "Predicate Format String Syntax" 在“谓词编程指南”中。

因此,您必须将覆盖类型 Date 转换回其 Foundation 对应NSDate

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

【讨论】:

以上是关于如果没有“as CVarArg”,则无法将日期传递给 NSPredicate(format: ...)的主要内容,如果未能解决你的问题,请参考以下文章

如果日期值在周末,则重置日期值

无法将日期传递给 nivo 折线图

如果我使用 prepareForSegue 传递数据,则无法嵌入导航控制器

React-Native - Firebase 云消息传递 - 如果从托盘打开则没有事件

如何将 vb.net 中日期的空值传递给 sql 存储过程?

无法将 ModelForm 中的表单属性传递给模板