¿Puedo usar iCloud para sincronizar el file de request NSUserDefaults?

Me preguntaba si era posible usar iCloud para sincronizar el file de preferences de una aplicación entre dispositivos. El file de preferences del que estoy hablando es el file com.domain.appname.plist creado por NSUserDafults para almacenar las preferences de la aplicación.

Me gustaría tener la opción de mantener el file de preferences de mi aplicación sincronizado entre dos dispositivos diferentes (un iPad y un iPhone, por ejemplo). ¿Es este un uso aceptable de la synchronization de iCloud? ¿O tendría que convertir el file Plist en un tipo diferente de documento, almacenarlo en la nube y convertirlo nuevamente en el file de preferences de la aplicación al recuperarlo?

¡Gracias!

Hay una biblioteca disponible para hacer esto con una línea de código

https://github.com/MugunthKumar/MKiCloudSync

Al igual que MKiCloudSync , también tengo una biblioteca en GitHub llamada SDCloudDefaults . En lugar de sincronizar automáticamente, hay un object nuevo que usa en lugar de NSUserDefaults que guarda tanto en iCloud como en NSUserDefaults . Esto significa que puede decidir qué elementos se almacenan localmente y cuáles se almacenan en la nube.

(Encontré MKiCloudSync después de implementarlo. Creo que es inteligente, pero no quiero sincronizar todo con iCloud, por lo que mi solución sigue funcionando mejor para mí).

Es posible sincronizar preferences entre dispositivos usando iCloud. Sin embargo, recomendaría no compartir el file Plist entre dispositivos.

NSUbiquitousKeyValueStore debería ser adecuado para lo que intentas hacer. Es muy similar a NSUserDefaults, por lo que debería ser fácil de recoger.

Para usarlo, simplemente habilite el derecho com.apple.developer.ubiquity-kvstore-identifier en su file de derechos y simplemente duplique las preferences que desea sincronizar en el almacén de valores de la key omnipresente. Una vez que esté en la kvstore omnipresente, podrá verlo desde la aplicación en otros dispositivos. Incluso puede sincronizar entre diferentes aplicaciones siempre que utilicen el mismo identificador.

También debe registrarse para recibir la notificación NSUbiquitousKeyValueStoreDidChangeExternallyNotification para ver si hay nuevos cambios y actualizar el estándarUserDefaults en el dispositivo en consecuencia.