J'ai lu quelques blogs à ce sujet mais je ne sais toujours pas comment utiliser NSPersistentContainer. performBackgroundTask
pour créer une entité et l'enregistrer. Après avoir créé une instance en appelant la méthode de commodité init(context moc: NSManagedObjectContext)
en performBackgroundTask() { (moc) in }
si je vérifie container.viewContext.hasChanges
cela renvoie false et dit qu'il n'y a rien à sauvegarder, si j'appelle save on moc
(MOC d'arrière-plan créé pour ce bloc) Je reçois des erreurs comme celle-ci :
fatal error: Failure to save context: Error Domain=NSCocoaErrorDomain Code=133020 "Could not merge changes." UserInfo={conflictList=( "NSMergeConflict (0x17466c500) for NSManagedObject (0x1702cd3c0) with objectID '0xd000000000100000 <x-coredata://3EE6E11B-1901-47B5-9931-3C95D6513974/Currency/p4>' with oldVersion = 1 and newVersion = 2 and old cached row = {id = 2; ... }fatal error: Failure to save context: Error Domain=NSCocoaErrorDomain Code=133020 "Could not merge changes." UserInfo={conflictList=( "NSMergeConflict (0x170664b80) for NSManagedObject (0x1742cb980) with objectID '0xd000000000100000 <x-coredata://3EE6E11B-1901-47B5-9931-3C95D6513974/Currency/p4>' with oldVersion = 1 and newVersion = 2 and old cached row = {id = 2; ...} and new database row = {id = 2; ...}" )}
Je n'ai donc pas réussi à faire fonctionner la concurrence et j'apprécierais vraiment que quelqu'un m'explique la manière correcte d'utiliser cette fonctionnalité sur les données de base dans iOS 10.