Im construyendo una aplicación que utilizará un modelo Core Data. Soy bastante nuevo en Objective C y mis patrones de diseño habituales no se aplican realmente en Core Data y Objective C, al menos no puedo encontrar ejemplos que confirmen que lo harán.Patrón de diseño para Core Data iPhone App
He pasado por los ejemplos de desarrollador de Apple y diferentes fuentes en los intertubos.
Parece que para aprovechar la base de datos que necesita para pasar el managedObjectContext a cada uno de mis viewControllers, tener la viewController implementar el NSFetchedResultsControllerDelegate y luego poner en práctica cada uno de los métodos para hacer una zona de alcance, y posteriormente aplicar
NSFetchedResultsChangeInsert
NSFetchedResultsChangeDelete NSFetchedResultsChangeMove NSFetchedResultsChangeUpdate
Esto añade aproximadamente más de 100 líneas de código en cada viewController y es el 90% del mismo código que escribo una y otra vez. Además, tengo que pasar todo por alto y hacer un seguimiento de su huella de memoria.
En otros idiomas construiría un modelo singleton de unas pocas clases que contenían métodos para mantener y entregar datos a pedido, disponibles desde cualquier lugar. Parece que no puedo tomar ese enfoque en Objective C. Si fuera a construir una clase estática que tomara un managedObjectContext y me devolviera lo que necesitaba, igual tendría que pasar el managedObjectContext a cada vista y no sería asincrónicamente me gusta cuando implemento métodos de delegado que recién se llaman cuando un resultado está listo.
Espero que esto tenga sentido y que alguien pueda confirmar que no hay otra manera razonable de hacerlo o ayudarme a orientarme en una dirección para completar esto de una buena manera.
Gracias :)
se hizo una pregunta similar aquí, que también podría ser útil: http://stackoverflow.com/questions/1267520/where-to-place-the-core-data-stack-in-a-cocoa-cocoa- aplicación táctil –