2010-12-06 11 views
2

Je suis curieux de savoir quels sont les avantages d'encoder des objets dans l'objectif c avec NSCoding et de les écrire sur le disque, en écrivant simplement un objet persistant sur disque. Y a-t-il une augmentation des performances en termes d'utilisation des E/S ou de l'espace disque?Avantages et inconvénients de l'encodage d'objets avec NSCoding ou simplement l'écriture de données dans des fichiers

+0

Vous pouvez également noter ce que vous entendez par "écrire un objet de persistance sur le disque". Vraisemblablement, vous voulez dire écrire vos propres E/S de fichier et sortir des données/structures dans un style C-like dans un fichier? –

Répondre

4

Eh bien, la plupart des implémentations NSCoding géreront correctement les graphes d'objets; c'est-à-dire que si vous codez un objet membre qui a déjà été codé au codeur, il ne le code pas à nouveau. Le décodage restaure correctement le graphique de l'objet (l'objet cible décodé a donc plusieurs références entrantes). Vous obtenez également toutes les fonctions intégrées de codage d'aide (pour les types primitifs et les objets). A part cela, NSCoder s ne sont que des générateurs d'objets à persistance, donc vous finissez par faire un travail similaire, sans les inconvénients et les cas courants gérés par Apple. Quel générateur de persistance pourriez-vous écrire qui ne dupliquerait pas des tonnes de fonctionnalité?

+0

Merci @Adam Wright, je suis nouveau au développement d'applications iPhone et mon livre de choix n'a pas pris la peine d'expliquer les différences pratiques entre simplement écrire des objets de persistance sur le disque ou le faire avec les méthodes du protocole NSCoding. –