Estoy tratando de escribir una aplicación de datos básicos para el iPhone que utiliza una fuente de datos externa. Realmente no estoy usando Core Data para persistir en mis objetos, sino más bien para la administración del ciclo de vida del objeto. Tengo una idea bastante buena sobre cómo usar los datos centrales para los datos locales, pero me he encontrado con algunos problemas con los datos remotos. Solo usaré la API de Flickr como ejemplo.Patrones para acceder a datos remotos con Core Data?
Lo primero es que si necesito decir, una lista de las fotos recientes, tengo que tomarlas de una fuente de datos externa. Después de recuperar la lista, parece que debo iterar y crear objetos administrados para cada foto. En este punto, puedo continuar en mi código y usar la API estándar de datos principales para configurar una solicitud de recuperación y recuperar un subconjunto de fotos sobre, por ejemplo, perros.
Pero, ¿qué sucede si luego quiero continuar y recuperar una lista de las fotos del usuario? Dado que existe la posibilidad de que estos dos conjuntos de datos se crucen, ¿tengo que realizar una solicitud de recuperación de los datos existentes, actualizar lo que ya está allí y luego insertar los nuevos objetos?
-
En el patrón mayor, me gustaría simplemente tienen estructuras de datos independientes para cada uno de estos conjuntos de datos y acceder a ellos de manera apropiada. Un conjunto de Fotos recientes y un conjunto de Fotos de usuarios. Pero dado que el patrón general de Core Data parece ser utilizar un contexto de objeto gestionado, parece (podría estar equivocado) que tengo que fusionar mis datos con el conjunto principal de datos. Pero parece una gran cantidad de sobrecarga solo para tomar una lista de fotos. ¿Debo crear un contexto de objeto gestionado separado para el conjunto diferente? ¿Deberían utilizarse los datos centrales aquí?
Creo que lo que encuentro atractivo para Core Data es que antes (para un servicio web) solicitaba ciertos datos y los filtraba en la solicitud o los filtraba en código y producía una lista que usaría . Con Core Data, puedo obtener una lista de objetos, agregarlos a mi grupo de servidores (actualizando los objetos antiguos según sea necesario) y luego consultarlos. Un problema, puedo ver con este enfoque, sin embargo, es que si los objetos se eliminan externamente, no puedo saberlo, ya que guardo mis datos anteriores.
¿Estoy lejos de la base aquí? ¿Hay algún patrón que las personas sigan para manejar datos remotos y datos básicos? :) He encontrado algunas publicaciones de personas que dicen que lo han hecho, y que les funciona, pero pocos ejemplos. Gracias.
¿Puede ser más específico sobre lo que quiere? 'usa una fuente de datos externa' es muy vago. Parece que desea duplicar localmente una parte de una base de datos externa. ¿Necesita realizar cambios locales que se vuelvan a propocionar? ¿Qué hay de los conflictos? Este es un problema difícil y más detalles ayudarán a sugerir direcciones. –
quizás un hilo obsoleto, estaría tentado de intentar buscar cosas en un hilo de fondo y escribirlas en la tienda persistente y hacer que las notificaciones se propaguen desde allí hasta el hilo principal, no estoy seguro de que funcionaría, pero estaría bien si lo hizo – bshirley