不能在没有“as CVarArg"的情况下将日期传递给 NSPredicate(format: ...); [英] Can't pass Date to NSPredicate(format: ...) without "as CVarArg"

查看:32
本文介绍了不能在没有“as CVarArg"的情况下将日期传递给 NSPredicate(format: ...);的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我应该如何将 Date 传递给 NSPredicate.init(format predicateFormat: String, arguments 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.

推荐答案

%@ 格式期望 Foundation 对象 作为参数,比较《谓词编程指南》中的谓词格式字符串语法"".

The %@ format expect a Foundation object as argument, compare "Predicate Format String Syntax" in the "Predicate Programming Guide".

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

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)

这篇关于不能在没有“as CVarArg"的情况下将日期传递给 NSPredicate(format: ...);的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆