2017-02-04 4 views
0

iOS用のToDoリストアプリケーションを開発中で、CoreDataを使用してリストと予定を保存しています。私はCoreDataエンティティにリンクされた配列からデータを取得するコレクションビューでこれを表示しています。問題は、リストやToDoを作成するときに保存されますが、画面の一番下に行くことになります。これは、 '.saveContext'が実行されると、保存されている文字列が配列の最後に移動するためです(基本的にそれを追加する)、配列の先頭に保存するように指定する方法はありますか?ソートのmyArray.insertのような(「hello」を、時:0)の代わりにmyArray.appendの(「こんにちは」)CoreData配列の先頭に文字列を保存する方法

+0

アイテムオブジェクトに 'createdDate'または類似の日付属性を追加してから、この属性でソートすることができます。 – Paulw11

答えて

0

あなたはCoreDataの順序を保存する変更することはできませんが、単純にあなたのCoreDataのフェッチアレイ上reverse()を呼び出すことができます最初の最後のエントリを表示します。あなたがリストまたはドスを取得するためのフェッチ要求をしているとき

self.yourArray = try! context.fetch(request) 
self.yourArray.reverse() //Now last entry will show first 
0

は、あなたが任意の順序でフェッチされたオブジェクトをソートするNSSortDescriptorを指定することができます。あなたは、そのキーにソートその後、リストや仕事(あなたがオブジェクトを作成するときNSDate()にこのプロパティを設定)にcreationDateプロパティを設定し、することができます

let sortDescriptor = NSSortDescriptor(key: "creationDate", ascending: false) 
let request = ...// your NSFetchedRequest 
request.sortDescriptors = [sortDescriptor] 

幸運を!

関連する問題