2009-06-12 7 views
2

J'ai créé une sous-classe de UIImageView et je gère les touches pour ses objets à l'intérieur de la sous-classe elle-même.iPhone - enregistrer l'état UIImageView

Maintenant, lorsque l'utilisateur est sur le point de quitter l'application, je veux enregistrer l'état des images. Et comme il y a plusieurs transformations qui pourraient avoir eu lieu sur les images (je sauvegarde toutes les transformations dans un tableau), je veux pouvoir sauvegarder ces objets dans applicationWillTerminate.

Est-il possible de sauvegarder ces objets? Ou dois-je tout sauvegarder individuellement? Si oui, comment puis-je sauvegarder toutes les transformations qui ont eu lieu sur les objets de vue d'image jusqu'à ce que l'utilisateur se termine?

Merci.

Répondre

1

UIImageView est conforme à NSCoding. Vous devrez implémenter encodeWithCoder: dans votre sous-classe UIImageView pour permettre sa sérialisation. Vous utilisez l'encodeur transmis pour sérialiser les variables membres importantes, dans ce cas vos images appellent alors la superclasse 'encodeWithCoder:.

Vous faites l'inverse de ceci dans initWithCoder: et vous avez retrouvé votre état d'origine.

Si vos images sont des instances de UIImage, vous aurez un peu plus de travail à faire car elle n'est pas conforme à NSCoding. Vous pourrez peut-être vous en sortir en convertissant les données d'image en un objet NSData et en l'encodant en fonction de vos besoins. Voici un exemple de la façon dont cela peut se faire: http://www.nixwire.com/getting-uiimage-to-work-with-nscoding-encodewithcoder/

Jetez un oeil aux Archives et sérialisations Guide de programmation Cocoa: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/Archiving/Archiving.html

+0

Merci beaucoup. Je suis confronté à un autre problème. encodeWithCoder donne une exception dans ma sous-classe UIImageView. Il lance et erreur [UIImage encodeWithCoder:] méthode invalide. Mais je n'invoque pas encodeWithCoder sur un objet UIImage, uniquement sur UIImageView et NSMutableDictionary. Des idées? – lostInTransit

+0

se révèle l'autre lien que vous avez mentionné (nixwire) mentionne exactement le problème que je suis confronté :) Merci encore – lostInTransit

+0

J'ai le même problème, Y at-il un tutoriel/exemple d'application disponible pour cela où je peux trouver une référence? – raaz

Questions connexes