NSUserDefaults vers fichier externe
Bonjour à toutes et tous,
Je développe une petite appli contenant 120 boutons que différentes personnes utiliseront sur le même iPhone.
Chacun de ces boutons comporte un label que l'utilisateur peux modifier, cette modification du nom est stockée dans un NSUserDefaults
NSUserDefaults *saveNom = [NSUserDefaults standardUserDefaults];
self->nomBtn01.text = [saveNom objectForKey:@infoString];
[bouton01 setTitle:self->nomBtn01.text forState:UIControlStateNormal];
self->nomBtn02.text = [saveNom objectForKey:@infoString2];
[bouton02 setTitle:self->nomBtn02.text forState:UIControlStateNormal];
self->nomBtn03.text = [saveNom objectForKey:@infoString3];
[bouton03 setTitle:self->nomBtn03.text forState:UIControlStateNormal];
je voudrai que l'utilisateur puisse sauvegarder ces labels de boutons dans un fichier et qu'il puisse loader ce fichier à sa guise. Cela permettrai d'avoir différents profiles utilisateurs dans chacun des fichiers.
Ainsi l'utilisateur n°1 chargerai son fichier et retrouverai ses propres labels...idem pour l'utilisateur N°2, N°3.....
auriez vous une suggestion (la plus simple possible ) à me faire?
je précise que je suis un grand novice en objective-c et que si vos explications pouvaient être accompagnées de quelques brides de code pour les illustrer cela serra grandement apprécié
d'avance merci
Réponses
Mais franchement... pourquoi utiliser NSUserDefaults pour ça ? C'est pas particulèrement facile à déboguer ou faire évoluer.
Je te conseille plutôt d'enregistrer un fichier JSON ou PList dans la sandbox de ton appli.
P.S.: les gens partagent vraiment leur iPhone ?
Salut oui ils s'agit de commerciaux qui se partagent l'iPhone de la boà®te pour faire des démos
Quelques petites vidéos en français sur l'utilisation des mécanismes de persistance des données (les fichiers) avec iOS :
http://pagesperso.lip6.fr/Fabrice.Kordon/5I452-2014/semaine-10.php
re...
j'ai bien avancé grace à vous
si cela peut aider quelqu'un voici mon code pour écrire des labels dans un dictionnaire, puis écrire le dictionnaire dans un fichier.txt et la démarche inverse pour retrouver les labels
maintenant j'ai besoin pouvoir choisir le nom du fichier.txt avant de l'écrire ( exemple : prefUtilisateur2.txt ) puis de lister le contenu du répertoire "documents" de mon appli et de pouvoir le sélectionner avant lecture parmi les autres fichiers.txt
auriez-vous une suggestion quand à la manière de procéder?
Soit tu gardes un seul gros dictionnaire :
Avec prefUser1 toutes les préférences de User1.
Et tu peux récupérer tous tes utilisateurs via [dictionnaire allKeys]
Soit tu peux tout diviser :
Par contre, j'utiliserais .plist pour l'extension de ton fichier, pas .txt.
La deuxième solution t'évites de charger un trop gros dictionnaire en mémoire, même si je ne pense pas que cela soit vraiment trop important vu les devices relativement puissants qu'on a, mais ça reste une certaine forme d'optimisation.