gpt4 book ai didi

swift - 具有字典参数的 Realm 中的谓词

转载 作者:行者123 更新时间:2023-11-28 07:59:36 27 4
gpt4 key购买 nike

我想创建一个带有字典参数的谓词并在 Realm 上过滤数据,比如

var parameters = [String: Any]()
parameters["Mobile"] = a.Mobile!
parameters["CategoryId"] = self.SelectCategryId

let existContact = (contactBiz.FetchMulti(parameters: parameters)?.count)! > 0

在 fetchMulti 函数中,我创建了一个谓词并过滤数据

func FetchMulti(parameters: [String: Any])-> Results<RealmEntityType>?
{
do
{
let key = T.KeyName()

var object = realm.objects(RealmEntityType.self)

let subPredicates = parameters.map {
NSPredicate(format: "%@ = %@", $0.key, $0.value as! CVarArg)
}

let compoundPredicate = NSCompoundPredicate(orPredicateWithSubpredicates: subPredicates)


// var predictionArray = [String]()
// for p in parameters
// {
// predictionArray.append("\(p.key) = \(p.value) ")
//
// }
//
// let perdicate = predictionArray.joined(separator: " && ")
//


return object.filter(compoundPredicate);
}
catch
{
print(error.localizedDescription)

}
return nil

}

但是我得到了这个错误

 reason: 'Predicate expressions must compare a keypath and another keypath or a constant value'

任何帮助!

最佳答案

您需要使用 %K 来指示该值是键的名称而不是常量字符串:NSPredicate(format: "%K = %@", $0. key, $0.value as!CVarArg)

关于swift - 具有字典参数的 Realm 中的谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47014613/

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