【发布时间】:2015-07-08 23:38:45
【问题描述】:
我似乎无法弄清楚如何正确编写一个 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 中。
【问题讨论】:
标签: ios swift nspredicate cloudkit