按日期排序运行对象数组(核心数据)

时间:2016-07-22 17:41:29

标签: arrays swift sorting

在我正在运行的应用程序中,我正在从核心数据创建一个运行对象数组。但是,我需要按日期对它们进行排序(每个运行对象都有一个与之关联的日期变量)。这是我的代码:

func loadFromCoreData() {
    let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
    let runFetch = NSFetchRequest(entityName: "Run")
    do {
        let fetchedRuns = try managedObjectContext.executeFetchRequest(runFetch) as! [Run]
        for run in fetchedRuns {
            self.runs.append(run)
        }
    } catch let error as NSError {
        fatalError("Failed to fetch run: \(error)")
    }
}

在函数结束之前,我如何按日期对运行对象数组(称为运行)进行排序?

1 个答案:

答案 0 :(得分:0)

您可以定义一个函数,根据您的date属性对数组进行排序:

 func sortArrayDate(array:[Run])-> [NSManagedObject]{
        let newArray = array.sort ({
            (obj1, obj2) in
            let p1 = obj1 as Run
            let p2 = obj2 as Run
            return p1.date_attr!.compare(p2.date_attr!) == .OrderedDescending
        })
        return newArray
    }

enum NSComparisonResult : Int {
    case OrderedAscending
    case OrderedSame
    case OrderedDescending
}

调用你的阵列:

sortArrayDate(self.runs)

按降序排序。