swift4.0 物件資料來源根據屬性分組,時間排序

ZY_FlyWay發表於2018-03-06

 //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()

    }


相關文章