2011-02-08 6 views
5

В моем приложении iPhone я получаю данные json с удаленного сервера, анализирую его с помощью Json Framework и представляю его в UIview. Также хочу иметь возможность предоставить пользователю возможность хранить данные на устройстве, чтобы он также можно было просматривать в автономном режиме. Мне было интересно, является ли сохранение json-данных напрямую лучшим или худшим выбором, чем создание объекта, а затем сохранение его с помощью NSCoding + NSKeyedArchiver. Я полагаю, что преимуществом хранения json-строки является то, что она занимает меньше места на диске, чем архивный объект, а с другой стороны, путем хранения архивных объектов вам не нужно анализировать сохраненные данные каждый раз, используя меньше память.Хранение данных json на iPhone: сохранить json-строку, так как это VS, сделать объект из json и использовать NSCoding + NSKeyedArchiver

Есть ли лучший общий выбор? Есть ли какие-либо рекомендации по этому вопросу? Размер файлов json составляет приблизительно 8 КБ.

ответ

6

Я использую другой подход. Когда данные JSON анализируются в моем приложении, оно хранится в NSDictionary. Я сохраняю это как файл .plist.

[myDictionary writeToFile:[self saveFilePath] atomically:YES]; 

Для нагрузки:

NSMutableDictionary *wholeDictionary = [NSDictionary dictionaryWithContentsOfFile:[self saveFilePath]]; 

Вот оно!

+0

Это, кажется, простой, но эффективный подход. Благодаря! Использует ли это меньше дискового пространства, чем архивный объект? – Kremk

+1

@ Kremk: Вероятно, он использует то же или больше места. Формат plist не особенно эффективен с точки зрения пространства, поскольку он является читаемым XML-форматом. Ключ-архив может хранить некоторые вещи в двоичном формате (скажем, «возможно», потому что я не проверял), что даст вам некоторую экономию места. – JeremyP

+0

Я согласен с @JeremyP, но с учетом того, что они являются файлами 8Kb, его не стоит прилагать много усилий. – Hiltmon

 Смежные вопросы

  • Нет связанных вопросов^_^