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

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

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

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

【问题讨论】:

    标签: swift swift3 nsdate nspredicate foundation


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      相关资源
      最近更新 更多