2017-08-11 2 views
0

J'ai un graphe d'objet qui représente l'état de ma (première) application iOS. J'ai implémenté NSCoding pour chacun des objets afin que je puisse utiliser un archiveur à clé. J'ai l'archivage et le travail d'archivage bien. Mais il me reste une question assez simple: Quand devrais-je archiver les choses?Quand persister un objet graphique

Est-il sûr de ne l'appeler que lorsque j'obtiens un message applicationDidEnterBackground de mon représentant de l'application? Ou devrais-je pesist des choses chaque fois que l'utilisateur fait quelque chose de "significatif" dans l'interface (comme rejeter une vue où des données ont été entrées, etc.)? Quelles sont les meilleures pratiques pour cela?

Répondre

0

J'ai trouvé la réponse à ma propre question dans ce document:

https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html

Voici la citation pertinente:

Important: Toujours enregistrer les données de l'utilisateur aux postes de contrôle appropriés dans votre application. Bien que vous puissiez utiliser des transitions d'état d'application pour forcer des objets à écrire des modifications non enregistrées sur le disque, n'attendez jamais une transition d'état d'application pour enregistrer des données. Par exemple, un contrôleur de vue qui gère les données utilisateur doit enregistrer ses données lorsqu'il est rejeté.