我的coredata模型中有一个名为name
的属性,我可以根据这个属性进行搜索......
filtered = self.newProdDetails.filter({( data : NewProduct) -> Bool in
return (data.name!.lowercased().contains(searchText.lowercased()))
})
现在,当我想根据名称进行搜索时,我可以在filtered
中加载cellForRowAt..
数组。
但是对于另一个视图,还有另一个实体具有名为customerJson
的属性。而这个json在其customerName
内有我想要搜索的基础。
在我首先提到的场景中,我想要搜索的元素(name
)直接是一个属性。但在第二种情况下,我想要搜索的元素在json中。那么在这种情况下,我如何为filtered
数组赋值??
我做过这样的事......
for element in orderDetails {
if let jsonStr = element.value(forKey: "customerJson") as? String {
let data = jsonStr.data(using: String.Encoding.utf8, allowLossyConversion: false)!
do {
if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] {
for item in json {
if item.key == "first_name" {
var customerName = (item.value as? String)! //HERE I GET THE CUSTOMER NAME. BUT HOW CAN I ASSIGN IT TO 'filtered' ARRAY FOR THE PURPOSE OF SEARCHING, I CAN'T FIGURE OUT.
}
}
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
}
答案 0 :(得分:0)
只需要在if item.key == "first_name"
内完成这项工作......
filterArr = self.orderDetails.filter({( data : Order) -> Bool in
return (data.customerJson!.lowercased().contains(searchText.lowercased()))
})