Вопрос

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

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

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

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

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

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

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

Спасибо

Дэн

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top