iOS persistante de la stratégie de stockage
Je suis de développer une application qui permettra d'enregistrer les données dans le système de fichiers local. Les données qui seront enregistrées seront la plupart du temps NSString et NSDate. Les données ne seront pas enregistrées qui, souvent, peut-être de nouvelles données seront introduites 10 fois lors d'une utilisation normale. Les données doivent également être réversible (CRUD)
Comment dois-je enregistrer ces données? Tout d'abord il est nécessaire de modéliser ces objets? Si non dois-je utiliser les listes de propriété? Ou SQLLite3?
Dois-je archiver les modèles de la classe? Utilisation SQLLite3?
EDIT: j'ai accidentellement laissé de côté certaines informations essentielles à propos de l'application. En fait mon application va avoir 2 modèles de données qui ont un agrégé de la relation. Donc mon premier modèle de données (permet de l'appeler DataA), ce qui aura un NSString et NSDate aura également une référence à la deuxième modèle de données (permet de l'appeler DataB) qui lui-même sera composé d'une NSString et un NSArray. De sorte qu'il devient un peu plus compliqué maintenant. Si un objet de DataB est supprimé, il convient bien sûr de cesser d'exister en DataA (mais le reste de DataA doit être laissé intact)
OriginalL'auteur Peter Warbo | 2012-01-04
Vous devez vous connecter pour publier un commentaire.
Ce type de données semble être très simple à stocker et de récupérer et de ne pas avoir d'autres dépendances comme un horridly graphique d'objet complexe.
Vous devez stocker ces données dans un fichier plat ou en
NSUserDefaults
.Je vais vous donner un exemple de deux, à l'aide de l'objet de l'archivage avec l'utilisation de la
NSCoding
protocole:Alors, dites dans votre délégué d'application, vous pouvez faire ceci:
Avertissement: je n'ai pas testé ce code.
Si c'est le cas, je vous conseille d'utiliser de Base de Données parce que ce serait la meilleure façon de faire de relation en cascade des règles et le. Il devrait être de la saleté simple à mettre en œuvre, même si je suis sceptique sur le compromis de la création d'une Base de Données de la pile juste pour le faire...
Donc en gros, ça se résume soit à l'aide de l'archivage de mes modèles de données ou de l'utilisation de Base de Données?
Yep. Je ne recommande pas
sqlite
directement à tous dans ce cas.Lorsque vous avez absolument besoin de filtrer les données avec SQL et aussi besoin de la performance bosse qu'il fournit par la suppression de la Base de Données intermédiaire. Je n'ai pas rencontré une situation qui satisfait à ces conditions, j'ai donc essayer de rester loin de lui si je le peux. Pour ne pas mentionner que le
sqlite3
API est une douleur royale dans le cul à traiter.OriginalL'auteur Jacob Relkin
NSUserDefault est un bon choix si vous avez seulement un nombre limité de données.
Mais si vous envisagez de filtrage et de récupération, alors vous devriez jeter un oeil à la Base de Données pour stocker des objets.
Même si l'objet graphique est minime, vous gagnerez de l'objet mis en cache et de gestion gratuit gestion du undo/redo.
OriginalL'auteur Sylvain G.
Je vous suggère d'aller avec
NSUserDefaults
. C'est sûrement la meilleure approche pour stocker les informations relatives à votre application, et n'importe quelle application. De vérifier la la documentation !!OriginalL'auteur Legolas