Форматы для связи между бэкэндом и Objective-C / Cocoa - PullRequest
3 голосов
/ 22 января 2010

Я разрабатываю приложение для iPhone, которое подключено к внутреннему серверу. Он должен общаться с ним много раз, через несколько запросов. Я отправляю HTTP-сообщения, но хочу получать более сложные ответы, которые я могу как-то проанализировать. Предположительно, я могу предоставить любой тип формата для ответов от сервера, поэтому мой вопрос: какой из них будет проще (возможно, даже быстрее) использовать / анализировать для Objective-C / Cocoa и преобразовывать в какой-либо словарь?

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

Ответы [ 3 ]

2 голосов
/ 22 января 2010

PList - хороший ответ и очень удобный, но многим людям на сервере будет удобнее создавать JSON - TouchJSON - очень хороший JSON-парсер для iPhone.

2 голосов
/ 22 января 2010

С точки зрения Какао, самый простой формат - это список свойств , так как Какао может анализировать это непосредственно в словарь или массив.

Вы можете использовать NSDictionary +dictionaryWithContentsOfFile: и +dictionaryWithContentsOfUrl:, чтобы прочитать файл plist в словарь.

Если ваши данные plist отсутствуют в файле, вы также можете преобразовать объект NSData, содержащий данные plist, в словарь с помощью +[NSPropertyListSerialization dataFromPropertyList:format:errorDescription:] или преобразовать строку NSString в словарь с помощью -[NSString propertyList].

1 голос
/ 27 января 2010

Несмотря на наличие plist gem для ruby ​​, JSON или (необработанный) XML гораздо более популярны за пределами мира Apple. Например, большинство библиотек JavaScript настроены на использование одного или обоих из них.

Так что, если вы говорите исключительно с iPhone, plist, вероятно, является хорошим выбором, но в противном случае вам следует рассмотреть возможность использования JSON (или XML).

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