Actividad
El siguiente comando, ejecute mientras trabaja con iCloud con aplicaciones (como Smultron 4 y TextEdit) que admiten documentos móviles:
sudo opensnoop -n ubd
- muestra archivos locales abiertos por el ubicuo demonio. Los archivos incluyen bases de datos, una base de datos por par. Un directorio por igual en la siguiente ruta:
~/Library/Application Support/Ubiquity
Tipos de datos
Si desea medir el progreso, decida qué tipos medir:
- Datos centrales
- documentos
- valor clave.
Ahorro, progreso y medición.
Datos centrales
... Los archivos de registro de cambios, no el archivo de la tienda, se cargan en iCloud y se descargan en cada uno de los otros dispositivos de un usuario. Cuando llega un registro de cambios desde otro dispositivo conectado a la misma cuenta de iCloud, Core Data actualiza la copia local de su aplicación de la base de datos SQLite, en función del registro de cambios recibido. iCloud y Core Data aseguran que cada base de datos local se actualice con el mismo conjunto de cambios. ...
Considere: sin interpretar el contenido de un registro de cambios, ¿valdrá la pena medir el progreso de la carga del archivo de registro?
Documentos
En la Biblioteca para desarrolladores de Mac:
... Las aplicaciones basadas en documentos pueden adoptar el guardado automático en su lugar, y sus documentos se guardan automáticamente en los momentos apropiados ...
También:
Estrategias automáticas de almacenamiento de datos alivian al usuario
… Puntos apropiados en su código donde cualquier cambio relacionado con el usuario debe guardarse y escribir esos cambios en el disco automáticamente. ...
Algunos momentos apropiados en los que puede guardar los datos del usuario automáticamente incluyen los siguientes:
- Cuando el usuario cierra la ventana de la aplicación o la cierra (applicationWillTerminate :)
- Cuando la aplicación está desactivada (applicationWillResignActive :)
- Cuando el usuario oculta su aplicación (applicationWillHide :)
- Siempre que el usuario realice un cambio válido en los datos de su aplicación
El último elemento significa que tiene la libertad de guardar los datos del usuario en cualquier momento que tenga sentido hacerlo. Por ejemplo, si el usuario está editando campos de un registro de datos, puede guardar cada valor de campo a medida que se modifica o puede esperar y guardar todos los campos cuando el usuario muestre un nuevo registro. Realizar estos tipos de cambios incrementales garantiza que los datos estén siempre actualizados, pero también requiere una administración más precisa de su modelo de datos. ...
Considere: esos ahorros pueden ser tan frecuentes, y las cantidades tan pequeñas, que la medición no valdrá la pena.
item-info.db
Jugué con el Explorador de bases de datos SQLite para buscar en la item-info.db
base de datos el par que parece ser mi Mac local. Como sospechaba, la aplicación solo podía navegar mientras el sistema no usaba la base de datos; en dos segundos después de usar Vista previa para editar un Untitled.png
iCloud, ya no podía navegar por la base de datos ... y así sucesivamente.
Referencias
Guía de diseño de iCloud
Guía de programación de aplicaciones para Mac : El diseño de la aplicación principal: