我需要查询所有的记录类型,没有任何过滤。我尝试了两种方法:
let query = CKQuery(recordType: "Pm", predicate: nil)
let query = CKQuery(recordType: "Pm", predicate: NSPredicate(format: ""))
我收到错误:
'NSInvalidArgumentException',原因:'无法解析格式字符串“”'
怎么做?
我需要查询所有的记录类型,没有任何过滤。我尝试了两种方法:
let query = CKQuery(recordType: "Pm", predicate: nil)
let query = CKQuery(recordType: "Pm", predicate: NSPredicate(format: ""))
我收到错误:
'NSInvalidArgumentException',原因:'无法解析格式字符串“”'
怎么做?
你不能在没有谓词的情况下执行查询,但是 NSPredicate 确实有一个专门用于此的方法,并且在 Swift 中它通过初始化程序使用:
init(value: Bool) -> NSPredicate // return predicates that always evaluate to true/false
用法如下。
let predicate = NSPredicate(value: true)
要获取所有记录,您需要将其用作 CKQuery 的谓词:
[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]
或者,在 Swift 中:
NSPredicate(format: "TRUEPREDICATE")
这就像没有任何谓词一样有效。