¿Qué está haciendo iCloud durante la synchronization inicial?

Quiero sincronizar la aplicación de shoebox Core Data con iCloud. Un proyecto de ejemplo que Apple proporciona muestra cómo configurar NSPersistentStoreCoordinator para habilitar iCloud. El código se parece más o less a esto:

persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]]; NSDictionary* options = [NSDictionary dictionaryWithObjectsAndKeys:@"com.company.app", NSPersistentStoreUbiquitousContentNameKey, cloudURL, NSPersistentStoreUbiquitousContentURLKey,nil]; [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]); 

El problema es que si hay datos ya almacenados en iCloud, este método tarda una eternidad en devolver el persistentStoreCoordinator. Si lo hago sincrónicamente, estoy viendo una pantalla en blanco durante unos minutos, si lo hago de manera asíncrona, mi aplicación no se podrá usar porque no puedo interactuar con Core Data.

Seguramente hay una forma en que podría agregar la tienda persistente como lo haría sin iCloud, y luego dejar que iCloud funcione de forma asíncrona.

Básicamente, mi pregunta es: ¿qué está haciendo iCloud durante el time que tarda en sincronizarse inicialmente y puedo tener mi persistentStoreCoordinator primero y dejar que los datos se sincronicen en segundo plano?

Cuando utiliza iCloud para sincronizar Core Data, debe cargar la tienda en un hilo por separado. Echa un vistazo a:

https://devforums.apple.com/thread/126670

Eso demuestra una carga asíncrona de la tienda.