2009-08-18 4 views
0

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

Спасибо!

ответ

0

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

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