Я создаю приложение для iPhone, которое является по существу книгой, это будет связано большим количеством тяжелого текстом содержания.
Я рассмотрел связывание данных как XML, и загрузите его, когда приложение запускается, но XML содержал бы много вложенных структур и был бы чем-то вроде боли для парсинга.
Было бы лучше использовать plist? Я обеспокоен использованием памяти, и plists загружаются полностью в память - они могут быть проанализированы в блоках? Существует ли максимальный размер к plist и насколько эффективный они?
Я не уверен, как большой связанное содержание будет все же, но я должен предположить, что это могло быть где угодно от 500k до 4 МБ.
Списки свойств - это собственный формат сериализации для всего, что унаследовано от NSObject. Есть некоторые проблемы с сохранением изменяемого состояния, но Apple предпочитает общий plist. Существуют методы синтаксического анализа, доступные с NSData, которые абстрагируют детали разметки. Что касается XML, вам нужно написать собственный синтаксический анализатор.
Для получения дополнительных сведений см. это .
Следует отметить, что файл plist сам по себе является строгим XML; при выборе plist на стороне сервера вы должны иметь возможность анализировать XML-файл plist и обрабатывать каждые два узла как пары ключ-значение.
По моему опыту, plist намного проще поддерживать и лучше в долгосрочной перспективе. У меня аналогичная ситуация, и я написал приложение, которое генерирует файл данных, который мое приложение читает, используя все те же API без дополнительной настройки. Он сразу же приступил к работе (если вы знакомы с Cocoa.)
Его можно прочитать даже с помощью приложения Property List Editor, включенного в iPhone SDK. Хотя я не рекомендую его для очень больших структур данных вручную, поэтому я упомянул, как я создал для этого другое приложение - код, генерирующий данные и использующий его, почти имеет сравнение 1: 1, они настолько похожи. Редактор plist действительно очень удобен для настройки элемента или редактирования данных малого и среднего размера, и, опять же, он скрывает лежащий в основе XML.
Если удобочитаемость является целью разработки, вам следует рассмотреть JSON. Это не правильный ответ для каждого приложения, но его стоит рассмотреть. Json-framework с открытым исходным кодом (здесь: http://code.google.com/p/json-framework/ ) ОТЛИЧНЫЙ и предоставляет очень удобные методы для кодирования и декодирования строк JSON в объекты, как категория на NSString. Итак, вы можете сказать:
NSString *jsonString = ...// however you're loading the goods
NSDictionary *myData = [jsonString JSONValue];
... бум, вы работаете с собственными объектами. За мои деньги это даже проще, чем читать лист.
Почему бы не отправить содержимое в формате HTML? (Может быть, разбить на главы или что-то подобное)
Таким образом, вы могли бы сразу отображать его через WebView без какого-либо разбора или переформатирования.