2009-12-07 5 views
4

Lorsqu'un utilisateur télécharge quelque chose via mon application, je crée un objet ASIFormDataRequest pour effectuer le POST. Lorsque l'utilisateur est hors ligne, je voudrais écrire un objet ASIFormDataRequest dans un fichier et l'envoyer plus tard.Sérialisation d'objets dans Objective C

Existe-t-il un moyen intégré de sérialiser un objet comme celui-ci dans Objective C, ou dois-je écrire quelque chose à partir de zéro?

+0

Je dirais qu'essayer de sérialiser l'objet de requête n'est pas la bonne solution à ce problème. Je stockerais plutôt les données contenues dans la demande, et reconstruirais la demande et l'enverrais quand en ligne. – justinlatimer

Répondre

13

Eh oui! Il y a une très bonne chose appelée le protocole NSCoding. Un résumé sur la façon de l'implémenter et de l'utiliser est disponible sur notre site local CocoaHeads: http://cocoaheads.byu.edu/wiki/nscoding En résumé, vous implémentez deux méthodes pour définir ce que vous voulez sauvegarder et comment le restaurer, et ensuite c'est un one-liner pour archiver votre objet.

+7

Vous devez coller le code en cas de panne du site Web. –

+4

lien est mort maintenant. –

+0

Oui, le lien est mort, un exemple de code réel serait très apprécié. –

2

Dans la programmation Objective-C langue, sérialisation (plus communément connu sous le nom archivage) est réalisé par redéfinissant la écriture: et lire: méthodes dans la classe racine Object.

http://en.wikipedia.org/wiki/Serialization#Objective-C

Il y a un exemple de code là aussi :-)

+2

hein, je n'ai * jamais * entendu parler de ça de cette façon –

+0

intéressant .. peut-être que la page Wikipedia a besoin d'être mise à jour? –

+0

En fait, j'ai vu cela et j'ai pensé à l'origine que tous les objets avaient une méthode d'écriture intégrée, mais j'ai réalisé que je devais en écrire un si je voulais le faire de cette façon. –