2009-08-24 15 views
0

Je construis une application iPhone qui contient des données par défaut via une liste de propriétés. Ces données sont la source de mon modèle. Quelle est la meilleure façon de gérer ces données afin que l'utilisateur puisse lire (et dans quelques cas écrire) les données de ce plist?Une liste de propriétés doit-elle être gérée par son propre objet de modèle?

Je suis actuellement en train de sous-classer NSObject et de mapper les données de plist aux propriétés de cet objet, avec des méthodes pour lire/écrire des données sur l'objet. J'ai lu sur le protocole NSCoding et NSCoder mais je ne suis pas sûr comment implémenter cela dans ma classe personnalisée.

Toute aide sera appréciée.

Répondre

0

Semble la réponse est dans ce lien:

http://mojomonkeycoding.com/tag/nscoding/

Je suppose que vous ne vous inquiétez pas super être initWithCoder dans ces cas.

+0

Ce lien semble être mieux: http://cocoaheads.byu.edu/wiki/nscoding – mga

0

Si vous souhaitez vraiment conserver les données dans un plist, vous pouvez utiliser NSString: propertyList. Il va prendre la liste des propriétés et l'analyser dans les structures nécessaires pour vous. Vous pouvez ensuite utiliser NSPropertyListSerialization pour l'écrire à nouveau. Franchement, ce que vous faites est plus facile à moins que vous ayez une tonne d'entités différentes à suivre. Il y a beaucoup de façons de simplement charger et sauvegarder des données, si c'est tout ce qui vous intéresse. En plus de NSCoder (qui est beaucoup de code à mon goût), vous pouvez utiliser CoreData et ne pas vous inquiéter du processus de sérialisation ... -CoreData gère tout pour vous semi-automagically.

+0

Les charges app 7 paires nom/valeur et un tableau de dictionnaires (par exemple, une liste de personnes chacune avec son/ses données). Je veux utiliser ces données dans différentes vues tout au long de l'application. – mga

+0

Plists sont parfaits pour config type de données mis à jour rarement. Si vous avez un tas de données ou des mises à jour plus fréquentes, vous devriez probablement utiliser CoreData. –

+0

il s'agit principalement d'une liste de valeurs en lecture seule et de 4 paires nom/valeur pour l'état de l'application persistante – mga