Управление версиями постоянного архива с ключами?

StackOverflow https://stackoverflow.com/questions/1297137

Вопрос

Для моего текущего приложения я использую подход NSKeyedArchiver для сохранения моих объектов на iPhone между запусками.Мне интересно, имеет ли смысл помечать этот файл при его создании номером версии, чтобы в будущем, когда приложение обновится, мы знали, с какими данными мы имеем дело, если потребуется миграция.Рекомендуется ли это для чего-то простого, например NSArray пользовательских объектов, сериализованных с помощью NSKeyedArchiver?Если да, то как/где спрятать номер версии?

Спасибо!

Это было полезно?

Решение

Если вы чувствуете, что формат изменится, то да, вам понадобится какой-то способ определить, с какой версией файла вы работаете.Простой способ сделать это (поскольку вы используете NSArray) — просто добавить номер версии в виде NSNumber либо в начало, либо в конец массива.Альтернативно, для более сложного подхода, который фактически не меняет файлы, вы можете сохранить информацию в отдельном файле (скажем, используя NSDictionary, который связывает имя файла и номер версии).Или вы можете использовать систему пользовательских настроек по умолчанию для ее хранения, и, если она взята из более старой версии, обновить файл и ключ пользовательских настроек по умолчанию.

Я бы не стал использовать второй метод, если только вы не имеете дело с файлами данных с несколькими ключами.Из этих трех я бы, вероятно, выбрал последнее, но, возможно, есть другой способ сделать это, который имеет больше смысла.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top