Je suis confus au sujet de NSUserDefaults
sur l'iPhone. Je viens d'un arrière-plan C/ASM et les choses Objective-C ont été une expérience d'apprentissage.Existe-t-il une meilleure façon de mettre un tas de choses dans NSUserDefaults?
J'utilise actuellement NSUserDefaults
pour stocker des chaînes (pour les noms dans une table highscore). Je veux commencer à implémenter une fonctionnalité de type "Enregistrer le jeu", donc si l'utilisateur reçoit un appel ou quitte le jeu pour un moment, il peut y revenir.
Pour récupérer le jeu, j'ai un couple de BOOL
drapeaux, un couple de int
pour stocker quelques variables nécessaires, mais je suis coincé à un tableau que je dois stocker. J'ai un tableau de 50 éléments unsigned char
s. Je pourrais le déplacer à int
s si cela rendrait les choses plus faciles, mais je ne le vois tout simplement pas.
Pour travailler avec NSUserDefaults
je peux setBool
(faire déjà), setFloat
(encore une fois, en faisant déjà), setInteger
et setObject
.
Évidemment, je pourrais déclarer des clés pour chaque élément du tableau et les stocker une par une avec setInteger
mais c'est vraiment kludgy. Quelle est la meilleure façon d'aborder cela? Au lieu d'un tableau de unsigned char
s, j'essaie en quelque sorte d'utiliser un NSObject
? Y at-il de bons tutoriels sur NSObject
que je peux lire pour mieux le comprendre?
Oui, vous utilisez généralement NSUserDefaults pour les préférences (comme le choix d'unités impériales ou métriques) et stockez les données de votre application dans un fichier séparé à l'aide de listes de propriétés sérialisées, sqlite, Core Data, etc .. –
prefs, mais les données doivent être stockées ailleurs, comme un plist dans "~/Library/Application Support/MyApp /" par exemple. –
Sur l'iPhone, il existe évidemment différentes conventions pour stocker des données, car la structure est très différente. Consultez les guides de programmation iPhone appropriés pour plus de détails sur le stockage des fichiers pour votre application. –