我似乎无法弄清楚如何正确编写NSPredicate,它将过滤查询以按某个字段进行搜索。我正在尝试搜索标题为“Location”的字段,然后在该字段中搜索字符串,并查看字符串“CA”是否与用户字符串“currentState”(在这种情况下为CA,“currentState”)匹配只是在字符串中分配的用户位置(placemark.administrativeArea),然后只检索与这些过滤器匹配的记录。
这是我正在尝试使用的代码:
func retrieveStateMoods(latestStateMood:String) {
// Create query
let predicate:NSPredicate = NSPredicate(format: "Location", "\(self.currentState)%K") // CRASHES HERE!!
let sort:NSSortDescriptor = NSSortDescriptor(key: "creationDate", ascending: false)
let query:CKQuery = CKQuery(recordType: "State", predicate: predicate)
query.sortDescriptors = [sort]
等...
当我尝试创建谓词时崩溃了。这是错误代码:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无法解析格式字符串“Location”' 第一次抛出调用堆栈:
我知道我不是那么遥远,但我无法弄清楚如何正确格式化谓词。我尝试在开发人员参考中阅读NSPredicate示例,但它都是在objective-c。
答案 0 :(得分:2)
这应该是:
NSPredicate(format: "Location == %@", self.currentState)