2010-05-29 2 views
2

У меня есть некоторые данные, которые я хочу добавить в мое приложение ... около 650 категорий (включая имя + номер id), каждый из которых содержит в среднем 85 элементов (каждый с номером имени/идентификатора).iPhone длинный plist

Будет ли iPhone поддерживать такой большой plist? Я хочу сначала отобразить категории в UITableView, когда выбрана категория. Я хочу отобразить все связанные элементы. Имея такой большой plist, я не уверен, что iPhone будет отставать при загрузке элементов. На более чем 51 000 строк это похоже ... возможно.

EDIT: Необработанные текстовый файл 2MB

ответ

4

Plist может быть произвольной длины. Но plist с 2 МБ текстовых данных - действительно плохая идея. Даже на рабочем столе, Apple рекомендует только plists с максимальным размером несколько сотен килобайт:

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/propertylists/AboutPropertyLists/AboutPropertyLists.html#//apple_ref/doc/uid/10000048i-CH3-54402

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

Вы должны загружать свои данные в базу данных. Если вы сделаете это правильно, база данных будет вводить только часть необходимого вам набора данных, а не весь набор данных.

1

Я подозреваю, что это, вероятно, займет некоторое время, чтобы загрузить PLIST, особенно если вы используете PLIST на основе XML. Бинарный диск может быть быстрее. Возможно, вам захочется использовать CoreData или необработанную базу данных sqlite для хранения ваших данных.

Единственный способ убедиться, что это попробовать и посмотреть. Ничто не сравнится с фактическими показателями производительности.

0

Это действительно лучше подходит для предварительной загрузки базы данных. Он должен быть несколько меньшим для одного ...

Техника, написать код, чтобы прочитать plist и поместить его в SQLlite или CoreData. Затем выньте базу данных из каталога симулятора и добавьте ее в приложение, которое запускается в приложении, чтобы прочитать базу данных из файла, который у вас есть в проекте.

Если вам нужно изменить данные, предварительно загрузите их, но сначала скопируйте базу данных в записываемый каталог при первом запуске (или в основном в любое время, когда его там нет).

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