gpt4 book ai didi

ios - 具有多个参数和 "AND behaviour"的 NSPredicate

转载 作者:IT王子 更新时间:2023-10-29 05:39:14 25 4
gpt4 key购买 nike

我有一个函数可以从满足指定条件的特定实体中获取这些对象:

func fetchWithPredicate(entityName: String, argumentArray: [AnyObject]) -> [NSManagedObject] {

let fetchRequest = NSFetchRequest(entityName: entityName)
fetchRequest.predicate = NSPredicate(format: "%K == %@", argumentArray: argumentArray)

do {
return try self.managedContext.executeFetchRequest(fetchRequest) as! [NSManagedObject]
} catch {
let fetchError = error as NSError
print(fetchError)
return [NSManagedObject]()
}

}

当我传递一个包含多个参数(多个属性名称和值)的数组时,它似乎创建了一个这样的查询:

attributeName1 = value1 OR attributeName2 = value2 OR attributeName3 = value3 OR...

我想将这些 OR 更改为 AND。

编辑:

问题是它只有 replacing the first two items用“%K == %@”。

所以,我必须创建一个 NSCompoundPredicate to create a predicate dynamically .

最佳答案

在您的示例中,%K%@ 格式标记被替换为参数数组的前两项,另一个项目被忽略。

例如,您必须提供要在字符串中替换的所有格式标记

NSPredicate(format: "%K == %@ AND %K == %@", argumentArray:["key1", "value1", "key2", "value2"])

关于ios - 具有多个参数和 "AND behaviour"的 NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com