无法将日期传递给NSPredicate(格式:...)而不使用“as CVarArg” [英] Can't pass Date to NSPredicate(format: ...) without "as CVarArg"

查看:330
本文介绍了无法将日期传递给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 Foundation counterpart NSDate:

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

这篇关于无法将日期传递给NSPredicate(格式:...)而不使用“as CVarArg”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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