Есть ли простой способ работы с веб-сервисами для iPhone dev? - PullRequest
3 голосов
/ 30 декабря 2008

Мы хотим взять данные XML и преобразовать их в объект NSDictionary, но мы не хотим вручную выполнять итерации по XML. Есть простой способ сделать это? Как вы делаете веб-сервисы для вашего приложения для iPhone?

Ответы [ 3 ]

3 голосов
/ 30 декабря 2008

Если у вас есть контроль над выводом XML, вы можете попробовать создать список свойств, который затем можно прочитать в словарь, используя -dictionaryWithContentsOfURL: (хотя лучшим асинхронным способом было бы получить данные с использованием NSURLConnection, а затем преобразовать данные используя метод -propertyList для NSString). Вы можете найти больше о списках собственности здесь: http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/Introduction/chapter_1_section_1.html

Конечно, лучшим решением является использование клиента RESTful и использование комбинации NSURLConnection для получения / отправки данных и классов TouchXML (http://code.google.com/p/touchcode/wiki/TouchXML) для анализа данных, хотя для этого потребуется больше работы данные в словарь. Конечно, если они будут основными объектами данных в вашей системе, вы действительно хотите использовать либо собственный класс, либо SQLite для хранения данных, поскольку это обеспечивает гораздо большую надежность при тестировании приложения, чем словарь.

3 голосов
/ 30 декабря 2008

Если вы можете контролировать вывод сервера, попробуйте использовать plists. В противном случае вы застреваете с разбором XML (или JSON, если сервер может это сделать), но есть рамки, которые вы можете использовать. Смотрите ответ на этот вопрос .

Кроме того, вот хороший обзор того, как сделать клиенты RESTful на iphone:

https://developer.apple.com/webapps/articles/creatingrestfulclients.html

0 голосов
/ 05 января 2009

Вы можете вернуть данные в формате JSON. Для iPhone доступно множество парсеров с открытым исходным кодом JSON (TouchJSON - один).

Существует еще один класс, называемый NSPropertyListSerialization, который получает словарь из данных.

Вы можете сделать что-то подобное с данными, которые вы получите

NSDictionary * propertyList;
Формат NSPropertyListFormat;
NSString * errorStr;

propertyList = [NSPropertyListSerialization
propertyListFromData: receivedData
опция изменчивости: NSPropertyListImmutable
формат: & формат
errorDescription: & errorStr];

Извините, не знаю, какие теги используются здесь для форматирования кода!

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