2017-02-17 8 views
0

を並べ替えるしようとすると:EntityAと - EntityBCoreData:私は2つのエンティティ持っ

と私はEntityB.displayOrder

let request: NSFetchRequest<EntityA> = EntityA.fetchRequest() 
    context.perform { 

    do{ 
     var data = try self.context.fetch(request) 
     let sort = NSSortDescriptor(key: "displayOrder", ascending: true) 

     for (index,dat) in data.enumerated() { 
      let entitiesB = (dat.entitiesB?.sortedArray(using: [sort])) 
      data[index].entitiesB! = NSSet(array: entitiesB!) 
     } 

     self.testListTableVC.testData2 = data 
     self.testListTableVC.tableView.reloadData() 

     } 
    } 
} 

ソートでソートされたすべてのEntityAが動作しているようだフェッチしようとしています(<を>>) dataに戻すと、ソートされません。

答えて

0

entitiesBをソートしてから、data[index].entitiesBをとしてキャストされたentitiesBdocsNSSetがあります。ソートされていないことがわかります。あなたはこの配列をソートして、ソートされていないNSSet

としてそれをキャストしているので、あなたは、本質的に、余計な仕事をやっている

私はあなたのモデルを設定しているかわからないが、あなたがこれを必要とするように見えますtestListTableVC.testData2プロパティのdataそして、配列dataがどんな種類であっても、というentitiesBというプロパティがあります。 Swift Arrayを使用できるようにすることをお勧めします。

+0

アレンジメントを使用する場合はどうすればいいですか:関係のために注文しますか?迅速な配列にすべてのデータを解析することは、すぐにデータベースからのデータを使用するよりも多くの仕事のように思えます。または、リクエスト自体でソートすることはできますか? – HelloimDarius

関連する問題