Question

Pour mon application actuelle j'utilise l'approche NSKeyedArchiver de persister mes objets à l'iPhone entre les lancements. Je me demande s'il est logique de marquer ce fichier quand il est créé avec un numéro de version de sorte que dans l'avenir, lorsque le régime moteur app nous allons savoir quel genre de données que nous avons affaire à la migration devrait être nécessaire. Est-ce recommandé pour quelque chose d'aussi simple que NSArray d'objets personnalisés qui sont sérialisés avec NSKeyedArchiver? Si oui, comment / où planquer le numéro de version?

Merci!

Était-ce utile?

La solution

Si vous vous sentez comme le format va changer, alors oui, vous voulez un moyen de détecter la version du fichier que vous travaillez avec. Une façon simple de le faire (puisque vous utilisez NSArray) serait d'ajouter simplement le numéro de version en tant que NSNumber soit au début ou à la fin du tableau. Sinon, pour une approche plus complexe qui ne change pas les fichiers, vous pouvez stocker les informations dans un fichier séparé (par exemple, en utilisant un NSDictionary qui relie le nom du fichier et le numéro de version). Ou, vous pouvez utiliser le système des valeurs par défaut pour le stocker, et si elle est frome une version plus ancienne, mettez à jour le fichier et la clé des valeurs par défaut.

Je ne voudrais pas utiliser la deuxième méthode, à moins que vous avez affaire à plusieurs fichiers de données entrées au clavier. Sur ces trois, je choisirais probablement le dernier, mais il peut y avoir une autre façon de le faire qui fait plus de sens.

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