Im Erstellen einer App, die ein Core Data Model verwenden wird. Ich bin ziemlich neu bei Objective C und meine üblichen Design Patterns treffen nicht wirklich auf Core Data und Objective C zu, zumindest kann ich keine Beispiele finden, die das bestätigen.Entwurfsmuster für Core Data iPhone App
Ich habe durch die Apple Developer Beispiele und verschiedene Quellen auf den Intertubes gewesen.
Es scheint, dass ich Core Data zu nutzen, müssen die managedObjectContext jedem meiner Viewcontrollers, die Viewcontroller die NSFetchedResultsControllerDelegate implementieren müssen passieren und dann jede der Methoden implementieren für eine Abruf tun und implementieren anschließend
NSFetchedResultsChangeInsert
NSFetchedResultsChangeDelete NSFetchedResultsChangeMove NSFetchedResultsChangeUpdate
Dies fügt etwa 100 + Zeilen Code in jedem Viewcontroller, und es ist 90% der gleiche Code, den ich immer wieder schreiben. Außerdem muss ich alles weitergeben und den Speicherbedarf verfolgen.
In anderen Sprachen würde ich ein Singleton-Modell aus einigen Klassen erstellen, das Methoden für die Wartung und Bereitstellung von Daten auf Anfrage bereithält, die von überall verfügbar sind. Es scheint, dass ich diesen Ansatz in Objective C nicht verwenden kann. Wenn ich eine statische Klasse erstellen möchte, die einen managedObjectContext verwendet und mir zurückgegeben hat, was ich brauche, müsste ich den managedObjectContext immer noch an jede Ansicht weitergeben, und das wäre es auch nicht asynchron wie wenn ich Delegate-Methoden implementiere, die gerade aufgerufen werden, wenn ein Ergebnis bereit ist.
Ich hoffe, dass dies Sinn macht und dass jemand entweder bestätigen kann, dass es keinen anderen vernünftigen Weg gibt, dies zu tun, oder mir helfen, in eine Richtung zu zeigen, dies gut zu verpacken.
Eine ähnliche Frage wurde hier gefragt, die auch hilfreich sein könnten: http://stackoverflow.com/questions/1267520/where-to-place-the-core-data-stack-in-a-cocoa-cocoa- Touch-Anwendung –