【问题标题】:Sort an array of run objects by date (core data)按日期对运行对象数组进行排序(核心数据)
【发布时间】:2016-07-22 17:41:29
【问题描述】:

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

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)")
    }
}

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

【问题讨论】:

标签: arrays swift sorting


【解决方案1】:

您可以定义一个函数,根据您的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)

按降序排列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多