我有以下字典:
let object = [[String : AnyObject]]()
/*
{
"allProducts":[
{
"productDetails":[
{
"productName":"My product which I am unable to get by NSPredicate."
}
]
}
]
}
*/
我想谓词来获取“productName”。
代码尝试了:
let predicate = NSPredicate(format: "productName CONTAINS[c] '\(text)'")
arrayTableData = allProducts.filter() { predicate.evaluate(with: $0["productDetails"]) }
答案 0 :(得分:0)
您不需要(并且不应该)使用NSPredicate
这样简单的事情。
arrayTableData = allProducts.filter() { product in
return product["productDetails"]?.contains { details in
return details["productName"]?.contains(text) ?? false
} ?? false
}