2012-04-13 10 views
7

? Estoy desarrollando una aplicación que necesita realizar cálculos costosos en el inicio. Entonces, la primera vez que se ejecuta la aplicación, la aplicación hace los cálculos y almacena el resultado en un archivo.¿Existe alguna manera de conservar los datos de las aplicaciones entre las instalaciones de las aplicaciones y las desinstalaciones en iOS

Si el usuario decide desinstalar la aplicación y volver a instalarla más adelante, los cálculos deben realizarse de nuevo y me gustaría evitar volver a calcular. Tenga en cuenta que no estoy hablando de actualizaciones de la aplicación, sino de desinstalar/reinstalar.

Me preguntaba si hay una manera de conservar los datos a los que se puede acceder solo para mi aplicación, pero que pueden sobrevivir a las desinstalaciones.

La solución puede estar dentro del dispositivo (usando tipos de archivos/preferencias/...) o en un servidor. Por ejemplo, una posible solución podría ser enviar la identificación del dispositivo con el resultado a un servidor y almacenarla allí, pero como la identificación del dispositivo ha quedado obsoleta en iOS 5, ya no es una solución válida.

Gracias por su respuesta.

Jaime

Respuesta

9

Usted no dice la cantidad de datos, pero el siguiente sería opciones:

  • iCloud
  • Llavero
  • Dropbox

La única opción "universal", que todos dispositivos tendrán y que no se pueden desactivar, es el llavero aunque está limitado por la cantidad de espacio que puede usar.

Personalmente, no haría nada. Si el usuario elimina la aplicación, creo que es un juego justo tener que recalcular cosas en la reinstalación.

+5

Hacer nada es una opción válida que muchos olvidan. El hecho de que no haga nada no significa que no haya considerado el problema; simplemente significa que nada es la mejor o más práctica solución al problema que enfrenta. Me encanta sugerir nada como una solución. Gran ahorro de tiempo. – Damo

+0

UIPasteboard, podría ser una alternativa – CarlJ

+0

Gracias por sus respuestas. Estoy de acuerdo con usted en que no hacer nada es una opción válida e incluso la mejor en muchos casos, lo que no escribí en mi pregunta es que el costo de los cálculos también puede ser económico, por lo que para calcular dos veces los datos iniciales son dos veces caro en términos de dinero – masta

0

permite al usuario conectarse a su cuenta de Dropbox y se puede guardar los datos allí - su API es realmente recta de avance de usar, y no tendrá que preocuparse acerca de cómo Apple podría decidir aplicar persistencia de datos en el futuro.

+0

Gracias, el único problema que veo es que la funcionalidad de mi aplicación depende de que el usuario tenga una cuenta en Dropbox, ¿no es así? – masta

4

La forma en que lo he logrado hasta la fecha es con el llavero. Básicamente, cualquier cosa que cumpla con NSCoding se puede almacenar en el llavero. Es una buena idea usar el llavero con moderación, aunque solo sea desde el punto de vista de la "buena práctica personal". Después de todo, una vez que está en el llavero, está allí hasta que lo elimines específicamente y, presumiblemente, solo tu aplicación sabrá la clave que se utilizará para acceder a los datos que almacenas.

Un buen punto de partida para implementar algo que almacena estructuras de datos en el llavero se puede encontrar en el blog Use Your Loaf here de Keith Harrison.

En resumen, este es el único método transparente que conozco que puede garantizar la persistencia de los datos después de una desinstalación. Otras opciones, como repositorios de terceros (Dropbox) o iCloud, dependen del nivel de participación del usuario.

+0

Gracias, echaré un vistazo al blog que propones. – masta

1

Tenga en cuenta que Apple lo quiere de esta manera: eliminar una aplicación significa eliminar todos los datos de esta aplicación. Preferiría iCloud para guardar una cantidad pequeña de datos.

0

Una opción aparte del llavero e iCloud es UIPasteboard de Apple. Here es la referencia de clase. Algunas personas piensan que no es confiable, por lo que depende de cuán importante es la retención de datos para ti, supongo.

Cuestiones relacionadas