如何在 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! )