In meinem Kerndatenmodell hat eine Person
einen oder mehrere Cars
, die durch die ungeordnete to-many Beziehung 'Cars' angegeben werden. Häufig muss ich die Autos einer Person abrufen, die von datePurchased
bestellt werden, oder dateLastUsed
.Abgerufene Eigenschaft in Core Data
Bis jetzt habe ich meine eigene Methode zu Person
für carsByDatePurchased
hinzugefügt. Dies verwendet einen Sortierungsdeskriptor, um das NSSet cars
zu sortieren und ein NSArray zurückzugeben.
Könnte/sollte ich stattdessen eine abgerufene Eigenschaft dafür verwenden? Ich erlebe einen gewissen Performance-Overhead, indem ich jedes Mal, wenn ich die Autos in einer bestimmten Reihenfolge brauche, den Sortierungsdeskriptor benutze und dabei sogar mein eigenes Caching von carsByDatePurchased
implementiere. Es sieht so aus, als ob die geholte Eigenschaft für mich zwischengespeichert wird - ist das korrekt?
Welche Beschränkungen hat eine abgerufene Eigenschaft gegenüber meiner eigenen Implementierung?
Und entscheidend, bleibt der Wert der abgerufenen Eigenschaft zwischen den Ausführungen bestehen? Wenn ich die abgerufene Eigenschaft aktualisiere und meinen Kontext speichere, wird der Wert für den nächsten Start der Anwendung gespeichert?
Was ist der Unterschied zwischen dem Zugriff auf self.cars und dem Anwenden der Sortierung? Warum würde ich von einer anderen Abrufanforderung in cardsByDatePurchased profitieren, anstatt nur self.cars zu verwenden? –
Da die Sortierung auf Datenbankebene statt nach einem Abruf aus der Datenbank durchgeführt wird. –
Soll ich alle Autos holen und ein Prädikat verwenden, um sie auf Person == Selbst zu beschränken? Oder kann ich self.cars in irgendeiner Weise wiederverwenden? –