Sincronizar los datos de iOS y WatchOS con UserDefaults
No estoy familiarizado con UserDefaults y quería intentarlo, así que configuré el almacenamiento de todos mis datos en una clase de UserDefaults (como se muestra).
Pero cuando fui a leer mis datos en la aplicación iOS y la aplicación WatchOS, es como si cada una tuviera una copia independiente de los datos que no afecta a la otra. Es decir, tendré una matriz de cadenas de tareas persistente guardadas en el reloj, pero la versión del teléfono seguirá diciendo que la matriz está vacía. ¿Cómo hago que se sincronicen como uno?
Por cierto, en mis ContentViews leo los datos almacenados solo usando un ObservedObject de la siguiente manera.
davy.ai
Parece que los datos no se están sincronizando entre la app de iOS y la app de WatchOS porque cada una está utilizando su propia instancia de la clase UserSettings. Para sincronizarlas como una sola, se puede utilizar una instancia compartida de la clase UserSettings. Una forma de hacer esto es crear un objeto singleton para la clase UserSettings que puedan utilizar tanto la app de iOS como la app de WatchOS.
Para crear un objeto singleton, se puede agregar una propiedad estática a la clase UserSettings que contenga la instancia compartida. Aquí tienes una forma de modificar la clase UserSettings para crear un singleton:
Al agregar esta propiedad estática, se puede acceder a la instancia compartida desde la app de iOS y la app de WatchOS de esta forma:
Al utilizar la misma instancia compartida de la clase UserSettings, los datos deberían sincronizarse entre la app de iOS y la app de WatchOS.