веб-сервисы, использующие plist - PullRequest
1 голос
/ 10 мая 2011

Я использовал NSXMLParser для разбора xml и успешно запустил приложения ... Недавно я столкнулся с проблемами с xml ... Поскольку xml имеет большой вес.Это увеличивает объем используемой памяти ... Я планирую перейти на plist (поскольку это значительно уменьшает объем используемых ресурсов памяти).И понятия не имею, с чего начать ... Я искал по всей сети и не увенчался успехом, не могли бы вы, ребята, дать мне пример кода или даже рабочий URL, содержащий plist ... Более чем достаточно ... ЯБуду так признателен, если вы, ребята, сможете мне помочь.

Ответы [ 3 ]

2 голосов
/ 12 мая 2011

если у вас есть контроль над форматом данных, рассматривали ли вы вместо этого использование JSON?

1 голос
/ 13 мая 2011

Вы можете использовать CWXMLTranslator из https://github.com/jayway/CWFoundation для простого перевода из XML в объект домена.

Предположим, у вас есть этот класс домена:

@interface Book : NSObject {
}
@property(copy) NSString* author;
@property(copy) NSString* title;
@end

И этот XML:

<books>
  <book>
    <author>James Joyce</author>
    <title>Ulysses</title>
  </book>
  <!-- MORE BOOKS HERE -->
</book>

Вам нужно только определить файл перевода, назвать его Book.xmltranslation и добавить это:

book +> @root : Book {
   author >> author;
   title >> title;
}

Затем он будет использоваться для извлечения и трансляции XML-кода с сервера в живые экземпляры вашего Book класса, например:

NSArray* books = [CWXMLTranslator translateContentsOfURL:url
                                    withTranslationNamed:@"Book"
                                                delegate:nil
                                                   error:NULL];

Это самый простой из доступных вариантов использования, перевод DSL может быть даже встроен, если хотите. CWXMLTranslator также поддерживает гораздо более сложные операции, такие как преобразование типов в даты, URL-адреса, числа и т. Д. А также вложенные типы и прямой перевод в управляемые объекты Core Data.

Проект CWFoundation содержит всю необходимую документацию и пример проекта, который анализирует RSS-каналы.

1 голос
/ 11 мая 2011

Современные списки являются XML: Списки свойств .Можно использовать и создавать двоичные списки, но они являются просто формой двоичного XML.Это, в свою очередь, может означать некоторое сокращение накладных расходов, но за счет читабельности. JSON может быть меньше, чем эквивалентный XML, но не всегда.

Оставляя все это в стороне, списки, как правило, на больше подробны, чем эквивалентный XML.Сравните XML:

<book>
    <author>James Joyce</author>
    <title>Ulysses</title>
</book>

с эквивалентным списком:

<dict>
    <key>author</key>
    <string>James Joyce</string>
    <key>title</key>
    <string>Ulysses</string>
</dict>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...