【问题标题】:How to perform a query by field using a predicate?如何使用谓词按字段执行查询?
【发布时间】: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


    【解决方案1】:

    这应该是:

    NSPredicate(format: "Location == %@", self.currentState)
    

    【讨论】:

    • 谢谢你真棒
    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    相关资源
    最近更新 更多