Хранение моего класса ObJ-C онлайн. (веб-сервисы Amazon?) - PullRequest
2 голосов
/ 27 января 2009

Хорошо, это довольно широкий вопрос. Это мое первое приложение, и я не уверен, что лучший способ сделать это. Приложение находится на IPhone.

У меня есть класс "Ресторан". В ресторане много разных атрибутов и времени работы. В настоящее время я храню ресторан в экземпляре nsdata (он соответствует NSCoding). Локальное хранилище легко, и я просто использую nsdata.

Я только что встроил функцию импорта / экспорта. Я хочу, чтобы эти два метода «разместили» ресторан в сети и «достали» ресторан из сети. Я знаю, что могу сделать это с NSUrlConnection, и у меня это работает и работает.

Однако я хочу быть умнее. Например, что если я захочу взять мой список ресторанов, которые были представлены, и создать веб-интерфейс, который также может взаимодействовать с данными?

Это то, о чем я думаю до сих пор: Создайте метод toString, который преобразует мой класс в текстовое представление. Затем сохраните строку на сервере. Это заменит хранение nsdata онлайн. Это звучит уместно?

Тем не менее, я хочу иметь возможность запрашивать количество ресторанов и иметь немного больше контроля над моей онлайн-базой данных. Является ли XML ответом? Я начал изучать Amazon Web Services и изучал Json или Rest.

Есть какие-нибудь советы?

Спасибо

Dan

Ответы [ 3 ]

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

Похоже, вы хотите использовать plist. Любой из классов коллекции какао может быть записан в plist, который является разновидностью XML-файла. Приятно то, что если вы используете стандартные классы значений какао, вы можете выписать коллекцию и прочитать ее позже.

Объекты NSString, NSNumber, NSDate, NSData, NSAray, NSDictionary могут быть помещены в коллекцию и сохранены непосредственно в plist. Другие классы должны быть сериализованы в NSData, а затем записаны на диск в виде plist. Для действительно пользовательских данных, NSKeyedArchiver, вероятно, то, что вы хотите.

Для простых данных строк и чисел упакуйте их в NSDictionary, а затем запишите их в plist. Теперь посмотрите на свой Mac, и вы увидите, насколько популярны списки.

NSDictionary API - Хранение словарей

Руководство по программированию списка свойств

Руководство по программированию архивов и сериализаций для какао

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

Я пока не очень знаком с разработкой для iPhone, но если есть достаточно простой способ использовать веб-сервисы, я бы рекомендовал использовать его с типизированными параметрами. Это сделало бы эти сервисы более «пригодными для использования» и в других системах, им не нужно было бы знать, как сериализовать / упаковывать объекты в строку, а только как вызывать функцию: storeRestaurang (имя строки, int rating ...) и т. Д.

Это статья, которую я сам прочитаю, так как надеюсь немного больше заняться разработкой для iPhone: http://icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services/

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

Узнайте о REST, это самый простой и чистый способ предоставления веб-API. Некоторые фреймворки, такие как Ruby on Rails, предоставляют интерфейс REST прямо из коробки.

Затем вам нужно найти способ конвертировать ваши объекты на iPhone в REST-friendly формат. XML и JSON - оба варианта, но, к сожалению, я не видел ни одного кода для преобразования в / из XML или JSON, который бы мог порекомендовать, поскольку я еще не пробовал. Но есть некоторые проекты, которые могут привести вас в правильном направлении. Один из самых перспективных выглядит так:

http://github.com/yfactorial/objectiveresource/tree/master

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