De vez en cuando, pero no siempre (he tenido esta trabajando para un poco), la aplicación/extensión se pone en un estado en el que no se puede leer una marca en mi App de Grupo entre mi compañero app y mi extensión de la aplicación. No sé cómo se pone en este estado o por qué difieren los valores, pero es crítico para mi aplicación de estos siempre sincronizadas.
Aplicación complementaria viewDidLoad:
NSUserDefaults *myAppSettings = [[NSUserDefaults alloc] initWithSuiteName:@"group.myapp"];
.....
[myAppSettings setBool:true forKey:@"myBool"];
[myAppSettings synchronize];
NSLog([myAppSettings boolForKey:@"myBool"] ? @"Companion app - bool TRUE" : @"Companion app - bool FALSE");
Extensión de la aplicación viewDidLoad
NSUserDefaults *myAppSettings = [[NSUserDefaults alloc] initWithSuiteName:@"group.myapp"];
[myAppSettings synchronize];
NSLog([myAppSettings boolForKey:@"myBool"] ? @"App extension app - bool TRUE" : @"App extension - bool FALSE");
La salida de la consola
Companion app - bool TRUE
App extension - bool FALSE
Yo también sincronizar antes de que mi compañero de la aplicación entrará en el fondo. Tengo mi app de un grupo en el portal, etc.
¿Qué estoy haciendo mal?
EDITAR
Al parecer, otros que tienen este problema:
https://devforums.apple.com/message/977151#977151
"Creo que esto es muy lento.
A veces, el intercambio de datos de obras, luego de un cambio y, de repente, el widget no puede ver los datos compartidos (tanto en el Simulador y dispositivo).
Molesto y espero que sea un poco más confiable en la próxima beta!"
EDIT 2 Se parece a otra persona que ha informado de este problema exacto así:
"También me di cuenta de lo mismo.Esto no sólo sucede a la NSUserDefaults, sino también todos los archivos en el contenedor de la carpeta. El extensión del teclado de repente se pierde de lectura/escritura pemission a la contenedor de carpeta después de usar el teclado por un tiempo."
EDICIÓN 3 Más pruebas: https://devforums.apple.com/message/1028078#1028078
Después de actualizar a la beta 3, me di cuenta de que a veces el teclado no se pudo abrir la base de datos porque no se ha podido acceder a la base de datos archivo. El teclado ha sido capaz de acceder al archivo antes.
EDICIÓN 4
Parece que esto podría ser debido a que el teclado pierde la RequestsOpenAccess
bandera. Pero no puedo reproducirlo, y no hay manera para mí para saber con certeza.
EDICIÓN 5
Parece que los demás están informando de esto en el iOS8 GM build:
Este problema aún persiste para mí en el GM. Parece relacionado con un teclado accidente.. pero también parece que hay cierta disputa entre el teclado y el que contiene la aplicación en términos de quién crea la suite en lo que orden. Creo que es un problema de Apple final. Confía en mí, yo QUIERO que por mi culpa, pero me he pasado un sinnúmero de horas de ensayo y error. No importa lo que haga en el código y verificar con NSLog, que va a terminar en este estado con el tiempo. Esperando que alguien encuentra una píldora mágica. :S
Alguien ha solucionado esto?