2012-10-03 13 views
14

Estoy tratando de usar la nueva función de estado de la aplicación Guardar/Restaurar en iOS 6, pero el método (aplicación: shouldRestoreApplicationState :) no se llama si eliminé la aplicación por lo que no restaurar el estado de la aplicación, pero si lo estoy ejecutando desde el depurador se llama.iOS 6 Guardar/Restaurar aplicación de estado de aplicación

Funcionó cuando agregué (la aplicación no se ejecuta en segundo plano) en el plist y lo configuré en SÍ, pero no quiero establecerlo en YES. Me preguntaba si alguien lo hizo funcionar sin configurar (la aplicación no se ejecuta en segundo plano) en SÍ.

+1

Puede usar La aplicación no se ejecuta en segundo plano para probar solo esta característica. Luego vuelve a NO cuando hayas terminado y harás pruebas en la vida real. – Daniel

+0

@La restauración del estado de Daniel funcionará con configurar 'NO' si la aplicación se envía a la tienda de aplicaciones y se instala descargando desde la tienda de aplicaciones. – artificis

Respuesta

24

Desde el Apple docs:

El sistema automáticamente se borra el estado conservado de una aplicación cuando el usuario sale de la fuerza de la aplicación. Eliminar la información de estado preservado cuando se mata la aplicación es una precaución de seguridad. (Como medida de seguridad, el sistema también elimina el estado preservado si la aplicación falla dos veces durante el inicio). Si desea probar la capacidad de su aplicación para restaurar su estado, no debe usar la barra multitarea para eliminar la aplicación durante la depuración. En su lugar, use Xcode para matar la aplicación o elimine la aplicación mediante programación instalando un comando o gesto temporal para llamar a la salida a pedido.

Desde la experiencia, la manera más fácil es poner su aplicación en segundo plano presionando el botón de inicio (o Comando + Mayús + H para el simulador). Luego usa el botón de parada de Xcode. Como sugieren los documentos, un gesto de salida de depuración también funciona.

Actualización:

me encontré con un pequeño trabajo alrededor. La aplicación guarda su estado en Biblioteca/Estado de la aplicación guardada/[ID del paquete] - [Nombre de la aplicación] .savedState/data.data.

Al utilizar el simulador, puede copiar este archivo y soltarlo en cualquier momento que desee restaurar a ese estado específico.

De manera similar, en un dispositivo puede generar un archivo .xcappdata desde el organizador. Luego, puede cargar el archivo .xcappdata cuando desee restaurar desde ese estado guardado.

+3

Sí, solía enviarlo a segundo plano, detener el Xcode y volverlo a encender, y funcionaba bien. Pero en la sesión de la WWDC estaba matando la aplicación y funcionó, por eso intentaba hacer que funcionara matando la aplicación y funcionó al agregar (la aplicación no se ejecuta en segundo plano) en la lista, pero quería saber si había es de otra manera mientras se deja la aplicación ejecutándose en segundo plano. –

+1

Noté que el presentador también estaba matando la aplicación. Parece que el comportamiento de la preservación de la aplicación cambió entre la versión beta y la versión. Esta no es la primera vez que ha habido tal inconsistencia. Por ejemplo, Xcode 4 tenía auto-síntesis en una versión beta inicial, pero fue eliminado antes del lanzamiento público. No fue hasta hace poco que regresó la auto-síntesis. – rbrown

+2

El enlace a los documentos está roto (y el texto entre comillas podría haber cambiado). La nueva URL es: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforImplementingYourApp/StrategiesforImplementingYourApp.html#//apple_ref/doc/uid/TP40007072-CH5-SW31 –

Cuestiones relacionadas