Формат данных для контента тяжелого приложения для iPhone - Plist или XML? - PullRequest
1 голос
/ 03 июня 2010

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

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

Было бы лучше использовать plist? Я обеспокоен использованием памяти, и списки загружаются полностью в память - могут ли они быть проанализированы кусками? Есть ли максимальный размер для списка и насколько они эффективны?

Я не уверен, насколько большим будет пакетный контент, но я должен представить, что он может быть где-то от 500 КБ до 4 МБ.

Ответы [ 4 ]

2 голосов
/ 03 июня 2010

Списки свойств - это собственный формат сериализации для всего, что происходит от NSObject. Существуют некоторые проблемы с сохранением изменяемого состояния, но в целом формат plist является предпочтительным для Apple. В NSData доступны методы анализа, которые абстрагируют детали разметки. Что касается XML, вы обременены задачей написания собственного синтаксического анализатора.

Вы можете обратиться к этому для получения дополнительной информации.

Следует отметить, что сам файл plist является строгим XML; при выборе plist на стороне сервера вы сможете анализировать XML plist и рассматривать каждые два узла как пары ключ-значение.

1 голос
/ 03 июня 2010

По моему опыту, plist намного легче поддерживать и лучше в долгосрочной перспективе. У меня похожая ситуация, и я написал приложение, которое генерирует файл данных, который мое приложение читает, используя все те же API без дополнительной настройки. Он сходит с ума (пока вы знакомы с Какао.)

Его даже для чтения человеком можно с помощью приложения List Editor, включенного в iPhone SDK. Хотя я не рекомендую это для очень больших структур данных вручную, поэтому я упомянул, как я создал другое приложение для этого - код, генерирующий данные и использующий их, почти имеет сравнение 1: 1, они очень похожи. Редактор plist очень удобен для настройки элемента или редактирования данных среднего размера и, опять же, скрывает основной XML.

0 голосов
/ 03 июня 2010

Если удобочитаемость является целью проектирования, вам следует рассмотреть JSON. Это не правильный ответ для каждого приложения, но стоит задуматься. Json-framework с открытым исходным кодом (здесь: http://code.google.com/p/json-framework/) - это БОЛЬШОЙ, и предоставляет очень удобные методы для кодирования и декодирования строк JSON в объекты, как категории на NSString. Так что вы можете сказать:

NSString *jsonString = ...// however you're loading the goods
NSDictionary *myData = [jsonString JSONValue];

... и бум, вы работаете с нативными объектами. За мои деньги это даже проще, чем читать списки.

0 голосов
/ 03 июня 2010

Почему бы не отправить контент в формате HTML?(Может быть, разделены на главы или что-то подобное)

Таким образом, вы можете сразу же отобразить его через WebView без разбора или переформатирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...