将 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。
使用 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。