如何在 swift 4 中使用 NSPredicate 过滤字典数组(Datewise)
How to filter an array of dictionary(Datewise) using NSPredicate in swift 4
我是swift的新手,请有人帮助我。我必须按日期过滤我的数据。这是我的 JSON 数据。
result = (
{
Request = "sample task";
"Requested_by" = 112;
Source = "default-image.jpg";
"created_at" = "2018-07-02 12:44:20";
id = 556;
taskId = 821;
},
{
Request = cvv;
"Requested_by" = 112;
Source = "default-image.jpg";
"created_at" = "2018-07-03 17:01:14";
id = 554;
taskId = 812;
}
)
我尝试了一些代码:
func filterDatesFromMainData(){
let predicate = NSPredicate(format: "created_at = %@", self.datetextField.text!)
self.filterArray = NSMutableArray(array: self.dataArray.filtered(using: predicate))
print("data: \(self.filterArray)")
self.tableView.reloadData()
}
在谓词变量中,我将从日期选择器中获取日期。在 self.filterArray 中,我得到 0 个元素。
请有人帮助我,如何解决这个任务
可能是您的格式与日期不匹配 created_at。
和
尝试替换
let predicate = NSPredicate(format: "created_at = %@", self.datetextField.text!)
到
let predicate = NSPredicate(format: "created_at contains[c] %@", self.datetextField.text! )
你可以试试
let predicate = NSPredicate(format: "created_at contains[c] %@", self.datetextField.text! )
我是swift的新手,请有人帮助我。我必须按日期过滤我的数据。这是我的 JSON 数据。
result = (
{
Request = "sample task";
"Requested_by" = 112;
Source = "default-image.jpg";
"created_at" = "2018-07-02 12:44:20";
id = 556;
taskId = 821;
},
{
Request = cvv;
"Requested_by" = 112;
Source = "default-image.jpg";
"created_at" = "2018-07-03 17:01:14";
id = 554;
taskId = 812;
}
)
我尝试了一些代码:
func filterDatesFromMainData(){
let predicate = NSPredicate(format: "created_at = %@", self.datetextField.text!)
self.filterArray = NSMutableArray(array: self.dataArray.filtered(using: predicate))
print("data: \(self.filterArray)")
self.tableView.reloadData()
}
在谓词变量中,我将从日期选择器中获取日期。在 self.filterArray 中,我得到 0 个元素。 请有人帮助我,如何解决这个任务
可能是您的格式与日期不匹配 created_at。
和
尝试替换
let predicate = NSPredicate(format: "created_at = %@", self.datetextField.text!)
到
let predicate = NSPredicate(format: "created_at contains[c] %@", self.datetextField.text! )
你可以试试
let predicate = NSPredicate(format: "created_at contains[c] %@", self.datetextField.text! )