使用NSPredicate与数组进行cloudKit搜索

时间:2016-02-05 10:11:44

标签: ios nspredicate

使用NSPredicate时,我试图搜索数组中包含的所有对象(字符串)。下面的代码示例有效,但谓词只收集第一个索引中的对象?? NSPredicate用于CKQueryOperation。 每个Record都有一个名为Category的密钥的值。

    let array: [String] = ["Education", "Sport", "TV and Film"]

    // select all records
    //let predicate = NSPredicate(format: "Category = %@", category )



    let predicate = NSPredicate (format: "Category == %@", argumentArray: array)

    let query = CKQuery(recordType: "quizRecord", predicate: predicate)

    // get just one value only
    let operation = CKQueryOperation(query: query)

  //code works but only queries Records with the Category for "Education" 

2 个答案:

答案 0 :(得分:3)

尝试更换:

"Category == %@"

使用:

"Category IN %@"

答案 1 :(得分:1)

我和Peter Wiley有同样的问题。我发现的解决方案是对Danny Bravo解决方案的混合,并对该解决方案发表评论。

let arrayPredicate = NSPredicate(format: "Name IN %@", argumentArray: [names])

要获得多个结果,我需要同时使用关键字" IN"在格式中并用[]包装我的argumentArray。