Sto costruendo un'app che utilizzerà un modello Core Data. Sono piuttosto nuovo all'Objective C ei miei soliti schemi di progettazione non si applicano in realtà ai Core Data e all'Obiettivo C, almeno non riesco a trovare esempi che confermino la loro volontà.Modello di progettazione per l'app per iPhone Core Data
Sono stato attraverso gli esempi di Apple Developer e diverse fonti sugli intertubes.
Sembra che per sfruttare Core Data ho bisogno di passare la managedObjectContext a ciascuno dei miei viewControllers, avere la viewController implementare il NSFetchedResultsControllerDelegate e quindi implementare ciascuno dei metodi per fare un'operazione di recupero e successivamente attuare
NSFetchedResultsChangeInsert
NSFetchedResultsChangeDelete NSFetchedResultsChangeMove NSFetchedResultsChangeUpdate
Questo aggiunge circa 100+ linee di codice in ogni viewController ed è il 90% dello stesso codice che scrivo ripetutamente. Inoltre devo passare tutto e tenere traccia del suo footprint di memoria.
In altre lingue creerei un modello singleton di alcune classi che contenevano metodi per il mantenimento e l'invio di dati su richiesta, disponibili da qualsiasi luogo. Sembra che non possa adottare questo approccio in Objective C. Se io dovessi costruire una classe statica che prendesse un oggetto ManagedObjectContext e mi restituisse ciò di cui avevo bisogno, avrei comunque dovuto passare a objectObjectContext su ogni vista e non sarebbe stato asincrono come quando implemento metodi delegati che vengono appena chiamati quando un risultato è pronto.
Spero che questo abbia un senso e che qualcuno possa confermare che non esiste un altro modo ragionevole per farlo o che mi aiuti a indicarmi una direzione per avvolgerlo in un buon modo.
Grazie :)
Qui è stata posta una domanda simile, che potrebbe anche essere utile: http://stackoverflow.com/questions/1267520/where-to-place-the-core-data-stack-in-a-cocoa-cocoa- touch-application –