Загрузка данных на веб-сайт с iOS Objective-C

#objective-c #ruby-on-rails #ios #database #web

#objective-c #ruby-on-rails #iOS #База данных #веб

Вопрос:

Я полный новичок, когда дело доходит до подключения к веб-сайту iOS objective-c. Мне нужно, чтобы кто-нибудь указал мне правильное направление в том, как загружать / отправлять данные (т. Е. Сообщение) На веб-сайт, который мой друг запрограммировал на Ruby on Rails.

Веб-сайт использует сервисы Heroku и подключен к базе данных PostgreSQL.

Я нашел способ извлекать данные с сайта с помощью синтаксического анализатора JSON (SBJson) с помощью следующего кода:

 SBJsonParser *parser = [[SBJsonParser alloc] init];
NSString *rawJSON = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:aURL]];
anNSDictionaryObject = [[parser objectWithString:rawJSON error:nil] copy];  
  

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

Я не уверен, что предоставил достаточно информации, но буду признателен за любую помощь. Дайте мне знать, если потребуется дополнительная информация.

Комментарии:

1. У вас не должно быть прямого доступа к базе данных — это создает проблемы. Вместо этого все обновления должны запускаться через приложение RoR вашего друга, и, надеюсь, он сможет сообщить вам, какой API он предоставил для обновления данных в базе данных. (Возможно, потребовалась значительная доработка в приложении, которое будет отправлено вам, реляционные базы данных великолепны для многих вещей, но обычно программы, которые ими управляют, изменяют или повторно агрегируют данные по-своему.)

Ответ №1:

Сначала вы должны убедиться, что веб-служба предоставляет возможность создания или обновления объектов через API (вам никогда не понадобится прямой доступ к базе данных). Обычно в REST (и Rails) соглашение заключается в использовании POST для создания и PUT для обновлений. Например:

 POST /user.json 
{ user: { name: "...", email: "..." } }
  

Или:

 PUT /users/:id.json
{ user: { name: "...", email: "..." } }
  

После того, как у вас есть эта настройка на вашем сервере, используйте свою библиотеку JSON для сериализации вашего объекта и библиотеку HTTP для выполнения post на вашем клиенте iOS. Я рекомендую JSONKit и HTTPRiot, поскольку они предоставляют простые средства для взаимодействия с серверами RESTful.

Ответ №2:

Ваш друг должен предоставить REST Api из приложения rails (если вы используете MVC и даже rails scaffolding, то они должны быть практически встроены в любом случае).

В приложении iOS вы, вероятно, захотите отправить асинхронный запрос, чтобы основной поток пользовательского интерфейса не блокировался. Вам нужно будет создать NSMutableURLRequest с данными post, а затем отправить данные с помощью NSURLConnection sendSynchronousRequest

Ответ №3:

Проверьте StorageRoomApp, у них отличный сервис и отличная поддержка. Приложение для хранения