2009-06-15 7 views
0

Est-ce que le state pattern dans une application iPhone - Dans mon cas, une application utilitaire relativement légère - utilise trop de mémoire? Le state pattern, si je comprends bien, utilise plusieurs classes; ces classes représentent différents états . Tous les objets d'état différents sont instanciés et stockés dans différentes variables de pointeur jusqu'à ce que l'état soit nécessaire, auquel point il est défini sur un objet curState. Je pense que je pourrais charger paresseux chaque objet d'état pour économiser de la mémoire et du temps de chargement; Je pourrais alors libérer les objets si mon application reçoit un avertissement de mémoire.Motif d'état dans les applications iPhone (utilisation de la mémoire)

Mais ce que je voulais savoir, c'est que ce modèle utilise trop de mémoire pour une utilisation générale dans une application iPhone OS? Les développeurs iPhone devraient-ils rester à l'écart de ce modèle? Existe-t-il un modèle différent qui convient mieux à l'iPhone OS?

Répondre

1

Ne vaut pas la peine de s'inquiéter. À moins que vos états soient extrêmement compliqués, ou que vous en ayez des milliers et des milliers, tous les fichiers d'art ou de médias qui se trouvent dans votre application les submergeront.

Je veux dire en général - ne pas transpirer l'utilisation de la mémoire de vos objets de modèle. Les objets Objective-C sont assez légers, en termes d'utilisation de la mémoire. Si vous avez une classe de modèle assez typique, avec par exemple une demi-douzaine de champs, dont chacun est un pointeur vers un autre objet, l'utilisation de la mémoire totale pour chaque instance de cette classe est quelque chose comme 32 octets ou plus. Si vous en mettez 1 000 dans un tableau ou dans une autre structure de données, cela consomme environ autant de mémoire qu'une image bitmap 128 x 128.

Vous êtes beaucoup plus susceptible de rencontrer des problèmes de mémoire dus à des graphiques ou à des sons dont vous n'avez pas besoin, que vous ne le feriez jamais dans les parties «fonctionnelles» de votre application.

+0

En ce qui concerne l'art et les fichiers multimédias -> ce ne serait que si les fichiers d'art et de médias étaient à l'intérieur des objets état, correct? –

+0

Ajout d'un peu plus de détails à ma réponse. –

+0

Merci d'avoir répondu à ma question. –