如何在 Swift 中使用 "IN" 谓词来执行 ckQuery?

How to use "IN" predicate in Swift for doing ckQuery?

我需要从 swift 中的应用程序进行查询。我正在使用 cloudKit,所以我无法使用 SQL 语言。

我想写一个类似于 :

的指令
SELECT * 
FROM parola
WHERE IDParola IN ("1","4","5","10"); //And so on with numbers

我在 swift 中读到我必须使用 NSPredicate,所以我写:

var predicate = NSPredicate(format: "IDParola IN { "1", "2" }")
let query = CKQuery(recordType: "Parola", predicate: predicate)

但是此代码给我错误:“由于未捕获的异常 'CKException',正在终止应用程序,原因:'Unexpected expression: IDParola IN {1, 2}' *** 首先抛出调用栈...

我读了这个页面: https://developer.apple.com/library/prerelease/ios/documentation/CloudKit/Reference/CKQuery_class/index.html ,我在没有 " 的情况下尝试过,我尝试了所有方法(我认为),但它不起作用。它只有在我写的时候才有效:

var predicate = NSPredicate(format: "IDParola = 1")
let query = CKQuery(recordType: "Parola", predicate: predicate)

但是用这段代码我只能检索到一条记录...谁能帮帮我?先谢谢了!!

你可以试试这个:

var predicate = NSPredicate(format: "IDParola IN %@", [1, 2]) 
let query = CKQuery(recordType: "Parola", predicate: predicate)