如何在 Swift 中使用“IN”谓词进行 ckQuery?
Posted
技术标签:
【中文标题】如何在 Swift 中使用“IN”谓词进行 ckQuery?【英文标题】:How to use "IN" predicate in Swift for doing ckQuery? 【发布时间】:2015-06-06 13:05:03 【问题描述】:我需要快速从我的应用程序中进行查询。我用的是cloudKit,所以不能用SQL语言。
我想写一个类似的指令:
SELECT *
FROM parola
WHERE IDParola IN ("1","4","5","10"); //And so on with numbers
我已经读过,我必须使用 NSPredicate,所以我写:
var predicate = NSPredicate(format: "IDParola IN "1", "2" ")
let query = CKQuery(recordType: "Parola", predicate: predicate)
但是这段代码给了我错误:“由于未捕获的异常'CKException'而终止应用程序,原因:'意外表达式: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)
但是使用这段代码我只能检索一条记录...谁能帮助我?先谢谢了!!
【问题讨论】:
【参考方案1】:你可以试试这个:
var predicate = NSPredicate(format: "IDParola IN %@", [1, 2])
let query = CKQuery(recordType: "Parola", predicate: predicate)
【讨论】:
它有效!谢谢!!太完美了! 别担心,我很高兴听到它解决了您的问题! :)以上是关于如何在 Swift 中使用“IN”谓词进行 ckQuery?的主要内容,如果未能解决你的问题,请参考以下文章
在 SWIFT 的谓词中使用“timeIntervalSinceNow”