swift4.0 对象数据源根据属性分组,时间排序

 //dataArray:[OperationMaintenanceObject] 对象数组

    func responsDeal(dataArray:[OperationMaintenanceObject]){

        //可变集合

        let operationSet = NSMutableSet()

        //遍历数组加进集合

        for operationMainObj in dataArray {

            operationSet.add(operationMainObj.releaseTime ?? "unknow")

        }

        //遍历集合

        operationSet.enumerateObjects ({ (obj, _) in

            //根据数组里面的 releaseTime 属性进行分组,相同的返回过滤数组

            let filterArray =  dataArray.filter{

                let str = obj as! String

                return $0.releaseTime == str

            }

            //将数组添加到数据源数组

            self.operationMaintenanceList?.append(filterArray)

        })

        

        //根据时间进行排序

        self.operationMaintenanceListself.operationMaintenanceList?.sorted(by: { (array1, array2) -> Bool in

            let obj1 = (array1 as! [OperationMaintenanceObject]).first

            let obj2 = (array2 as! [OperationMaintenanceObject]).first

            let dateFormater = DateFormatter()

            dateFormater.dateFormat = "YYYY-MM-dd"

            let date1 = dateFormater.date(from: (obj1?.releaseTime)!)

            let date2 = dateFormater.date(from: (obj2?.releaseTime)!)

            return date1?.compare(date2!) == .orderedDescending

        })

        

        //重现加载表格数据

        self.tableView.reloadData()

    }


你可能感兴趣的:(SWIFT)