2011-08-28 8 views
-1

Je travaille sur une application iPhone éditeur de texte où un utilisateur peut taper et enregistrer une note avec la police personnalisée, la taille et la couleur. J'ai donc un NSString, UIFont, et un UIColor. J'ai besoin de stocker tout cela dans une sorte de structure de données, mais je ne suis pas sûr de ce qui serait la meilleure méthode. Actuellement, j'utilise un NSMutableArray qui écrit à un plist pour la chaîne, et deux autres NSMutableArray objets personnalisés qui enregistrent à NSUserDefaults à la sortie. Mais cela devient trop compliqué à gérer et à déboguer. Y a-t-il une meilleure façon de faire cela?Meilleure façon de stocker du texte, des polices et des couleurs dans l'iPhone?

+0

Voici comment je vais enregistrer ces éléments :) Vous dites que vous utilisez des tableaux pour stocker la police et la couleur - certainement pour la police, vous pouvez simplement enregistrer le nom et juste le code hexadécimal de la couleur? Cela dépend de la façon dont vous chargez actuellement ceux-ci et permet la sélection, je suppose. – Luke

Répondre

2

Je créerais une sous-classe NSObject personnalisée, appelée AttributedText. Il stockerait ces valeurs à l'aide de setters personnalisés et pourrait être récupéré dans le magasin de données avec des getters personnalisés. Vous pouvez facilement le faire enregistrer dans NSUserDefaults, si vous avez utilisé cet objet personnalisé.

0

Votre chemin est le plus simple déjà. Si vous cherchez quelque chose d'un peu plus propre, vous pourriez envisager la construction d'un petit objet personnalisé qui est responsable de:

  1. Le stockage des données que vous voulez, et
  2. Sauvegarde/chargement dans NSUserDefaults au besoin

Définissez une API getter/setter simple sur l'objet pour les données que vous souhaitez, et utilisez-la pour séparer la complexité du traitement des tableaux et des valeurs par défaut de l'utilisateur. (Vous utiliserez la plupart de la même implémentation que vous avez déjà, juste dans une classe différente.)

+0

Un NSDictionary serait-il utile ici? – Snowman

+0

Cela dépend entièrement de ce que vous essayez de faire. Il peut être plus facile d'utiliser un NSDictionary avec des clés ('text',' font', 'color') qu'un NSMutableArray à trois éléments, si c'est votre implémentation actuelle. – Tim

0

Je stockerais simplement une chaîne attribuée.

+0

NSAttributedString prétend se conformer à NSCoding sur iOS, mais cela ne fonctionne généralement pas car la plupart de ses attributs sont des types de texte de base non pontés. – Isabel

Questions connexes