web-dev-qa-db-ja.com

「as CVarArg」なしではNSPredicate(format:...)に日付を渡すことができません

これは、DateNSPredicate.init(format predicateFormat: String, arguments argList: CVaListPointer)に渡す方法です。

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

それはちょっと不器用に見え、私は何か間違っているのではないかと思います。

27
netigger

%@ formatは、引数としてFoundationオブジェクトを期待しています。「述語プログラミングガイド」の "述語フォーマット文字列構文" と比較してください。

したがって、オーバーレイタイプDateをその対応するFoundation NSDateにキャストする必要があります。

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