2016-04-08 11 views
0

Das ist meine App processContentChanges: Methode, die durch NSPersistentStoreDidImportUbiquitousContentChangesNotification ausgelöst wird:Was soll ich in processContentChanges tun :?

- (void)processContentChanges:(NSNotification *)notification {  
    [self.managedObjectContext performBlock:^{ 
     // Merge incoming data updates in the managed object context 
     [self.managedObjectContext mergeChangesFromContextDidSaveNotification:notification]; 

     // Post notification to trigger UI updates 
#warning What do I actually do here? 
    }]; 
} 

Ich verwende NSFetchedResultsController s während meiner app, so dass die Benutzeroberfläche automatisch aktualisiert, wenn Änderungen von einem anderen Gerät durch iCloud empfangen werden. Das alles scheint zu funktionieren, aber der Kommentar, der // Post notification to trigger UI updates sagt, war dort in der Schablonenmethode schon. Soll ich hier eigentlich etwas tun, oder kann ich die Dinge so lassen, wie sie sind?

Antwort

0

Nun, obwohl ich keine Bestätigung dafür gehabt haben, glaube ich nicht, dass es etwas anderes ist, die so lange in diesem Verfahren getan werden muss, wie die folgenden Kriterien erfüllt sind:

  1. Sie implementieren NSPersistentStoreDidImportUbiquitousContentChangesNotification korrekt gemäß der Vorlage, so dass neue Inhalte der Objektkontext verwaltet zusammengeführt wird
  2. Ihr Inhalt wird generiert, auf die das NSFetchedResultsControllerDelegate Protokoll NSFetchedResultsController Objekte
  3. Ihr Viewcontrollers entspricht, und implementiert controllerWillChangeContent:, controllerDidChangeContent: und controller:didChangeObject:atIndexPath:forChangeType:newIndexPath
  4. Aktualisieren Sie in diesen Methoden Ihre Ansichten entsprechend, um neue Inhalte anzuzeigen, gelöschte Inhalte zu entfernen und geänderte Inhalte zu aktualisieren.

Wenn Sie irgendwelche Objekte haben, die Coredata nutzen ohne NSFetchedResultsController dann könnten Sie diese von Hand neu Abrufen der Daten aktualisieren müssen, wenn NSPersistentStoreDidImportUbiquitousContentChangesNotification von Coredata gebucht wird.