iphone - sesion - protocolo de fusión de datos de iCloud
icloud iniciar sesion (2)
No lo he hecho, pero al guardar en iCloud existe un alto riesgo de información conflictiva si los datos también se han actualizado o existen en otro dispositivo. Si los conflictos no se resuelven correctamente, el flujo entre los dos dispositivos no se producirá correctamente. Resolver los conflictos puede ser complicado, pero lo más simple sería dejar que gane el más reciente. Apple tiene procedimientos de manejo de conflictos que se activan cuando se guarda para sobrescribir en la tienda ubicua que identifica un conflicto.
Me las arreglé para conseguir que mi aplicación de datos principales existente funcionara con iCloud Después de días de estudio, en realidad era sorprendentemente simple. Parece que 3 cosas son esenciales:
para agregar un archivo de derechos (en Xcode reciente, esto se puede hacer con la selección del destino, seleccione "Panel de resumen", desplácese hacia abajo, marque activar permisos "
para agregar las opciones correctas al agregar la tienda persisten, en mi caso
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: // other options @"<arbitrary name>", NSPersistentStoreUbiquitousContentNameKey, iCloudURL, NSPersistentStoreUbiquitousContentURLKey, nil]
dónde
NSURL * iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
El ''nil'' aquí indica que se usa la información del archivo Entitlements.plist.
- habilitar el soporte de iCloud para la aplicación a través del portal de desarrolladores. Esto podría implicar generar una ID de aplicación única, algo que no había hecho antes.
En realidad, en este momento no estoy seguro de que este último paso sea crucial para el desarrollo. He habilitado otra aplicación sin este último paso y parece funcionar.
De todos modos, me he dado cuenta de que dos bases de datos centrales existentes de la misma aplicación en diferentes iDevices sincronizarán las nuevas entradas con la pila de datos principales, pero no sincronizarán automáticamente los registros existentes.
Una forma de sincronizar los datos del dispositivo A con B es eliminar la base de datos de datos del núcleo existente en B y luego reiniciar la aplicación en B. Sin embargo, esta no es una combinación adecuada.
¿Alguien sabe una manera de combinar dos bases de datos de datos centrales existentes en diferentes aplicaciones en el momento en que las aplicaciones se actualizan para usar el soporte de iCloud, es decir, usar las opciones anteriores y todo eso?
Gracias
Tal vez esto ayuda: https://gist.github.com/1475162 (por @steipete )