如何在没有谓词的情况下创建CKQuery?

时间:2014-07-07 21:20:58

标签: swift nspredicate cloudkit ckquery

我需要查询所有记录类型,不进行任何过滤。我试过两种方法:

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

我收到了错误:

  

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

怎么办?

2 个答案:

答案 0 :(得分:33)

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

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

用法如下。

let predicate = NSPredicate(value: true)

答案 1 :(得分:20)

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

[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]

或者,在Swift中:

NSPredicate(format: "TRUEPREDICATE")

这实际上就像没有任何谓词一样。