Question

Les docs iOS distinction entre les « sérialisation » et « archivage ». Est-ce une distinction générale (à savoir, détient dans d'autres langues) ou est-il spécifique à Objective-C? De plus, quelle est la différence entre ces deux?

Était-ce utile?

La solution

Ceci est un cas d'un être l'autre certains (mais pas tous) du temps.

Wikipedia a ceci à dire à propos de sérialisation:

"sérialisation est le processus de conversion d'une structure de données ou un objet dans une séquence de bits de sorte qu'il peut être stocké dans un fichier ou un tampon mémoire ou transmise sur une liaison de connexion de réseau doit être « résurrection » plus loin dans la même ou un autre environnement informatique "

Ainsi, l'archivage peut être seulement sérialisation, mais il pourrait aussi être la combinaison de sérialisation et compresssion, par exemple. Ou peut-être il ajoute une sorte d'informations d'en-tête. Alors sérialisation est une forme d'archives, mais une archive est pas nécessairement une sérialisation.

Ce n'est pas vraiment spécifique à iOS - ces termes sont jetés autour de partout. Leur signification particulière dans le contexte d'iOS pourrait être tout à fait spécifique, cependant.

Autres conseils

J'étais en train d'essayer de chercher leur différence de point de vue IOS. Ajouter ce qui suit pour les personnes intéressées:

Objectif: Archivage est utilisé pour des graphes d'objets du magasin. modèle de données complet peut être archivé et facilement restauré. La façon dont les fichiers Nib travail peut être considéré comme exemple pour l'archivage.

sérialisation est utilisé pour stocker la hiérarchie arbitraire d'objets.
Le travail des fichiers plist wat peut être considéré comme exemple fo sérialisations.

Différences (extraits d'archives) Guide programmation: « L'archive préserve l'identité de chaque objet dans le graphique et toutes les relations qu'il entretient avec tous les autres objets du graphique. »
Chaque objet codé dans le contexte d'invocation RootObject est suivi. Si le codeur est invité à coder un objet plus d'une fois, le codeur code une référence au premier encodage au lieu de coder à nouveau l'objet.

« peut entraîner plusieurs objets lorsque désérialisée. La mutabilité des objets n'est pas maintenue La sérialisation ne conserve que les valeurs des objets et leur position dans la hiérarchie. Des références multiples au même objet de valeur. »

différences de mise en œuvre: Tout objet que le protocole d'outils peut être archivé comme des cas où Seuls NSArray, NSDictionary, NSString, NSDate, NSNumber et NSData (et certains de leurs sous-classes) peut être sérialisé. Le contenu des objets du tableau et du dictionnaire doivent également contenir des objets que de ces quelques classes.

Quand utiliser: listes de propriétés (sérialisation) doivent être utilisées pour les données qui sont surtout constituées de chaînes et de chiffres. Ils sont très inefficaces lorsqu'ils sont utilisés avec de grands blocs de données binaires.
Il est digne d'objets d'archives autres que les objets plist ou stocker de grands blocs de données.

D'une manière générale, la sérialisation concerne la conversion de vos types de données de programme en flux d'octets indépendants de l'architecture. L'archivage est spécialisé dans la sérialisation que vous pouvez stocker le type et d'autres informations sur la base de la relation qui vous permettent de unserialize / unmarshall facilement. ne peut donc être considéré archives comme une spécialisation et sous-ensemble de sérialisation. Pour Objective-C

  

sérialisation convertit Objective-C   types et à partir d'un   flux d'octets indépendant de l'architecture.   Contrairement à l'archivage, de base   sérialisation n'enregistre pas les données   saisissez des valeurs, ni la   les relations entre eux; seulement le   eux-mêmes sont enregistrées des valeurs. C'est   votre responsabilité de désérialiser la   données dans le bon ordre. Nombreuses   cours de commodité, cependant, ne   fournir la capacité de serialize   listes de propriétés, l'enregistrement de leur   la structure ainsi que leurs valeurs.

Avec la sérialisation Boost C -

http://www.boost.org/ doc / libs / 1_45_0 / libs / sérialisation / doc / index.html

  

Ici, nous utilisons le terme « sérialisation »   pour désigner la déconstruction réversible   d'un ensemble arbitraire de données C de   structures à une séquence d'octets.   Un tel système peut être utilisé pour   reconstituer une structure équivalente   dans un autre contexte du programme. En fonction, dépendemment   le contexte, cela pourrait utiliser   mettre en oeuvre la persistance des objets, à distance   le passage de paramètres ou un autre établissement.   Dans ce système, nous utilisons le terme   « Archives » pour se référer à un particulier   le rendu de ce flux d'octets.   Cela pourrait être un fichier de données binaires,   données texte, XML, ou d'un autre créé   par l'utilisateur de cette bibliothèque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top