2009-06-28 3 views
3

Я очень новичок в iPhone SDK и прочитал много потоков на интеграцию с RESTful с iPhone. Однако я не мудрее. Вы можете помочь?iPhone HTTP REST Запросы/Ответы

У меня есть строка PHP и MySQL на сервере. Я ПОСТ 3 штук по информации с iPhone на PHP, который затем немного размышляет и беседует с базой данных.

Затем он возвращает 1, 2 или 3 значения в зависимости от информации POSTed и базы данных.

У меня возникла проблема - это захват и сохранение ответа таким образом, который затем можно проанализировать на iPhone.

Я попытался вернуть данные в виде строки (echo/return), массива и, наконец, XML. Ничто из этого не работает.

У кого-нибудь есть мысли по этому поводу или могут указать мне в правильном направлении?

Идеальная ситуация заключалась бы в том, чтобы получить массив или 3 переменные, которые я мог бы проверить с помощью базовой инструкции if.

Заранее спасибо.

+0

Опубликовать код. Мне кажется, что вы неправильно используете API, так как сама задача очень распространена. С вашим кодом в вопросе, мы с большей вероятностью обнаружим проблему и поможем вам. –

ответ

3

Если вы можете отправить свои данные в формате JSON, я рекомендую попробовать Objective-C JSON framework. Мне было очень легко начать работу. JSON очень прост в работе для отправки данных в массивы и словари для ключевого слова. С помощью фреймворка вы преобразуете свои данные json в NSArrays или NSDictionaries с помощью одного метода.

Есть несколько хороших уроков на this blog. Кроме того, не забудьте проверить json.org.

Другим вариантом является просмотр ObjectiveResource framework. Он предназначен для использования с службами Ruby on Rails, но если ваш API действительно RESTful, вы сможете его использовать.

+0

Для JSON YAJL (http://lloyd.github.com/yajl/) также выглядит круто. – Felixyz

4

Другой альтернативой является использование кода CocoaREST, доступного на github: http://github.com/sdegutis/CocoaREST. Он был выпущен только недавно, но, похоже, находится в активной разработке и выглядит его относительно простым в использовании.

EDIT: Как было предложено в другом ответе, еще одним подходом было бы использовать формат XML. Я бы предложил конкретный вариант этого: вы можете использовать XML, но использовать XML в формате plist. Таким образом, вы можете обойти необходимость разбора XML себя и просто использовать что-то вроде:

NSArray * myArray = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"http://example.com/xmlProducer"]]; 

(Точно так же, вы можете создать NSDictionary, NSString и т.д. из URL)

1

Отправить свои данные как plist (это подмножество XML), это проще всего разобрать.