2016-07-22 5 views
0

実行中のアプリケーションでは、コアデータから実行オブジェクトの配列を作成しています。しかし、私は日付でソートする必要があります(各実行オブジェクトには日付変数が関連付けられています)。私のコードは次のとおりです:実行オブジェクトの配列を日付でソートする(コアデータ)

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

[コアデータソート記述子とNSDate、iOSとSwiftの可能な複製](http://stackoverflow.com/questions/30511999/core-data-sort-descriptor-with-nsdate-ios-with-swift) – ZGski

答えて

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) 

降順でソートします。

関連する問題