将 NSPredicate 与数组一起用于 cloudKit 搜索

Using NSPredicate with array for cloudKit search

使用 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" 

尝试替换:

"Category == %@"

与:

"Category IN %@"

我遇到了与 Peter Wiley 相同的问题。我找到的解决方案是 Danny Bravo 的解决方案的混搭并对该解决方案发表评论。

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

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