如何使用谓词按字段执行查询?
How to perform a query by field using a predicate?
我似乎无法弄清楚如何正确编写 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]
等...
当我尝试创建谓词时它崩溃了。这是错误代码:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "Location"'
First throw call stack:
我知道我还差得远,但我就是不知道如何正确地格式化谓词。我尝试阅读开发人员参考中的 NSPredicate 示例,但它都在 objective-c.
中
这应该是:
NSPredicate(format: "Location == %@", self.currentState)
我似乎无法弄清楚如何正确编写 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]
等...
当我尝试创建谓词时它崩溃了。这是错误代码:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "Location"' First throw call stack:
我知道我还差得远,但我就是不知道如何正确地格式化谓词。我尝试阅读开发人员参考中的 NSPredicate 示例,但它都在 objective-c.
中这应该是:
NSPredicate(format: "Location == %@", self.currentState)