Estoy usando Core Data en mi primera aplicación de iPhone e intento entender NSFetchedResultsController. Funciona muy bien en mi vista de raíz. ¿Necesito crear una instancia en cada uno de mis controladores de vista? Si es así, ¿hay una plantilla que haga esto tan fácil como lo fue en mi controlador raíz (acabo de marcar un cuadro en la plantilla al crear el proyecto). Cuando agrego un único controlador de vista nuevo, no veo una opción para usar Core Data.¿Debería tener NSFetchedResultsController en cada vista?
Actualización: Incluso después de cortar/pegar el código en mi segunda vista, me tomó un tiempo darme cuenta de que también necesitaba configurar managedObjectContext antes de cambiar a la nueva vista. He añadido la siguiente línea a mi RootViewController antes de empujar la nueva vista en la pila de navegación:
self.newVC.managedObjectContext = self.managedObjectContext;
Gracias. Estoy visualizando una entidad diferente. ¿XCode hace algo para que sea más fácil, o realmente tengo que cortar/pegar ese código para cada vista? Sé que no es gran cosa, pero tengo que tomar las definiciones del encabezado y la implementación desde el archivo m. Un poco doloroso –
Realmente tiene que cortar y pegar para cada vista. O eso, o crea otra clase para abstraer la interacción con el controlador de resultados obtenidos. Sin embargo, lo intenté una vez y hubiera sido mucho mejor tratar directamente con el controlador de resultados obtenido. – kubi
Como dice kubi, abstraer algunos de los detalles aquí puede ser o no eficiente, dependiendo de la cantidad de Entidades diferentes que necesite visualizar. Si es 2 o 3, copie y pegue. Si es 10, tal vez la abstracción comience a ahorrarle tiempo. O tal vez si este código va a ser reutilizado mucho más tarde, eso también sugiere mantenerlo limpio desde el principio. Sea pragmático aquí y realice la llamada según su dominio y sus requisitos, y no una adhesión estricta al principio DRY. –