Sto lavorando a un'applicazione che contiene i dati in un server MySQL esterno, ma la memorizza nella cache localmente utilizzando i dati principali per tempi di risposta migliori. In sostanza, quello che vorrei fare è questo:Aggiornamento dei risultati di NSFetchedResultsController senza un nuovo recupero
- recuperare i dati da Core Data (archivio di dati SQLite, utilizzando NSFetchedResultsController) e visualizzarlo
- Grab nuovi elementi dal server MySQL in background
- Aggiorna la visualizzazione tabella corrente con il nuovo set di dati (sia nuovi che vecchi)
Ho tutto questo tranne l'ultimo passaggio. Non riesco a capire come fare un NSFetchedResultsController per aggiornare il suo insieme di dati. Finora, ho provato ad aggiungere voci direttamente al suo NSManagedObjectContext:
[NSEntityDescription insertNewObjectForEntityForName:@"Entity"
inManagedObjectContext:[fetchedResultsController
managedObjectContext]];
Ho anche provato quello che Apple fa nella loro esempio CoreDataBooks, e ha utilizzato un "aggiungendo" contesto oggetto separato gestito e una chiamata a mergeChangesFromContextDidSaveNotification:
. Né sembra cambiare il set di NSManagedObject * attualmente nel contesto dell'oggetto gestito del mio controller risultato recuperato.
Come posso aggiornare l'insieme di oggetti che un NSFetchedResultsController attualmente gestisce?
Questo è davvero il metodo che ho usato, e credo che questo è il modo in cui Apple fa in alcuni di loro Esempi di dati di base. – Tim