23

我需要查询所有的记录类型,没有任何过滤。我尝试了两种方法:

let query = CKQuery(recordType: "Pm", predicate: nil)
let query = CKQuery(recordType: "Pm", predicate: NSPredicate(format: ""))

我收到错误:

'NSInvalidArgumentException',原因:'无法解析格式字符串“”'

怎么做?

4

2 回答 2

37

你不能在没有谓词的情况下执行查询,但是 NSPredicate 确实有一个专门用于此的方法,并且在 Swift 中它通过初始化程序使用:

init(value: Bool) -> NSPredicate // return predicates that always evaluate to true/false

用法如下。

let predicate = NSPredicate(value: true)
于 2014-07-08T03:28:30.987 回答
20

要获取所有记录,您需要将其用作 CKQuery 的谓词:

[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]

或者,在 Swift 中:

NSPredicate(format: "TRUEPREDICATE")

这就像没有任何谓词一样有效。

于 2014-07-07T23:02:49.027 回答