Simultaneidad NSPersistentContainer para guardar en datos centrales

He leído algunos blogs sobre esto, pero todavía estoy confundido sobre cómo usar NSPersistentContainerperformBackgroundTask para crear una entidad y guardarla. Después de crear una instancia llamando al método de convenienciainit(context moc: NSManagedObjectContext) enperformBackgroundTask() { (moc) in } bloquear si revisocontainer.viewContext.hasChanges esto devuelve falso y dice que no hay nada que guardar, si llamo guardar enmoc (MOC de fondo creado para este bloque) Recibo errores como este:

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; ...}"
)}

Así que no pude lograr que la concurrencia funcionara y realmente agradecería que alguien me explicara la forma correcta de usar esta función en los datos principales en iOS 10

Respuestas a la pregunta(1)

Su respuesta a la pregunta