2010-02-15 4 views
0

Objectif c | xcode | iphone questionComment copier des objets dans des ivars en vue d'une utilisation ultérieure?

Im construire une classe de modèle (données) pour une transaction monétaire et avoir une sorte de question de base/noob concernant les pointeurs et la copie d'objet. La classe Transaction que je crée contient 4 ou 5 ivars/propriétés qui représentent des variables de type d'objet. maintenant quand je reçois l'utilisateur a entré des données du contrôleur de vue pour peupler ces ivars est-il sûr d'utiliser des pointeurs ou ai-je besoin de faire une copie de l'objet, puis l'assigner à l'ivar? Parce que j'ai besoin de stocker ces transactions après que l'utilisateur quitte le programme, je suppose que toutes les références que j'ai faites aux pointeurs dans une session précédente seront essentiellement des liens brisés. Ai-je tort ici, toute explication et peut-être quelques exemples de code seraient appréciés.

Si vous avez des suggestions quant à la façon de stocker les données pendant que l'application n'est pas utilisée, cela serait également utile.

Merci beaucoup,

Nick

Répondre

1

Je suggère de relire les guides d'introduction que vous semblez être un peu déraillé ici; trop penser les bases. Pas grave, nous avons tous été là (toujours là quand on fait face à de nouvelles choses, souvent!).

D'abord, pour toute valeur de chaîne, copiez-le. En termes de propriétés, vous devez utiliser, vous voulez:

@property(copy) NSString *myString; 

Assurez-vous -releasemyString dans votre méthode -dealloc.

Pour d'autres types de valeurs, il dépend vraiment du contexte. La copie est souvent la route la plus sûre. NSDate et NSNumber les instances sont immuables, donc les copies ne sont pas pertinentes, mais gratuites.

En ce qui concerne la sauvegarde des données, vous êtes semi-correct. Les pointeurs ne restent pas valides/identiques pour toutes les sessions en cours d'exécution avec votre application. Si vous avez besoin de sauvegarder des données, vous le faites explicitement via l'un des nombreux mécanismes communs. Pour les données mortellement simples dans un rôle entièrement basé sur un document, spécifique à l'application, les valeurs par défaut de l'utilisateur peuvent suffire. Sinon, consultez la documentation concernant l'archivage des données.

Questions connexes