0

ich eine Frage in Bezug auf Best Practices, wenn einen NSFetchedResultsController und Core Data verwenden, wenn Sie ein verwaltetes Objekt haben, das eine Reihe von Managed Objects als Eigenschaft hat, wie zum Beispiel:Swift NSFetchedResultsController Best Practice mit verschachtelten Objekten

class SomeObject: NSManagedObject { 
    @NSManaged var name: String 
    @NSManaged var notes: String? 
    @NSManaged var otherObjects: Set<OtherObject>? 
} 

class OtherObject: NSManagedObject { 
    @NSManaged var name: String 
    @NSManaged var notes: String? 
    @NSManaged var parent: SomeObject 
} 

Ich verwende einen NSFetchedResultsController, um ein UITableView für die "SomeObject" -Instanzen aufzufüllen. Wenn ein Benutzer eines der Tabellenelemente auswählt, wechselt es zu einem anderen UIView mit den Details zur SomeObject-Instanz sowie zu einem UITableView mit der Liste der zugewiesenen OtherObjects.

Meine Frage ist, was ist die beste Praxis für effiziente Table View-Management? Soll ich einen anderen NSFetchedResultsController erstellen, der das übergeordnete SomeObject-Element verwendet, um die Datenbank zu filtern und abzufragen, oder sollte ich die Tabelle einfach mit den OtherObjects füllen, die während der anfänglichen Datenabfrage gezogen wurden? Ich injiziere die SomeObject-Instanz in die nächste UIView, sodass die neue Ansicht den ManagedObjectContext und die ursprünglichen Informationen enthält.

Antwort

0

Meine Frage ist, was ist die beste Praxis für effiziente Table View-Management?

Vorzeitige Optimierung ist die Wurzel allen Übels (Donald Knuth)

ist jedoch Core Data keine relationale Datenbank-Management-System. In Core Data sind Beziehungen Referenzen. Verwenden Sie diese Referenzen. Dies ist der Standardwert. (Core Data verwendet fehlerhaftes und uniquing, also erwarte ich keinen großen Unterschied. Aber wenn Sie Probleme mit dem Laufzeitverhalten bekommen, können Sie noch ein Q auf SO veröffentlichen.)