2017-02-04 6 views
0

Ich entwickle eine To-Do-Liste App für iOS und ich verwende CoreData, um die Listen und Aufgaben zu speichern. Ich zeige dies in einer Sammlungsansicht an, die Daten von einem Array erhält, das mit der CoreData-Entität verknüpft ist. Das Problem ist, dass wenn Sie eine Liste oder eine Aufgabe erstellen, es speichert, aber an den unteren Bildschirmrand geht, nehme ich an, dass dies der Fall ist, wenn '.saveContext' ausgeführt wird, geht die gespeicherte Zeichenfolge an das Ende des Arrays (im Grunde hängt es an), gibt es eine Möglichkeit, es zu spezifizieren, um am Anfang des Arrays zu speichern? Art wie myArray.insert („hallo“ an: 0) statt myArray.append („Hallo“)So speichern Sie Zeichenfolge an Anfang von CoreData Array

+0

Sie sollten Ihrem Item-Objekt ein createdDate- oder ähnliches date-Attribut hinzufügen, dann können Sie nach diesem Attribut sortieren. – Paulw11

Antwort

0

Sie nicht Einsparverordnung von CoreData ändern können, aber Sie einfach reverse() auf CoreData ‚s geholt Array aufrufen können Zeige den letzten Eintrag zuerst.

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

Wenn Sie eine Anforderung holen tun, um die Listen oder todos zu erhalten, können Sie eine NSSortDescriptor geben die abgerufenen Objekte in beliebiger Reihenfolge zu sortieren. Sie können eine creationDate Eigenschaft auf Listen und todos gesetzt (diese Eigenschaft auf NSDate() wenn Sie das Objekt erstellen) und dann sortieren auf diesem Schlüssel:

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

Viel Glück!

Verwandte Themen