在我正在运行的应用程序中,我正在从核心数据创建一个运行对象数组。但是,我需要按日期对它们进行排序(每个运行对象都有一个与之关联的日期变量)。这是我的代码:
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)")
}
}
在函数结束之前,我如何按日期对运行对象数组(称为运行)进行排序?
答案 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)
按降序排序。