База данных MySQL для приложения iPhone - PullRequest
1 голос
/ 27 ноября 2010

У меня есть база данных MySQL на веб-сервере, и мне нужно прочитать данные из приложения iPhone. Каков наилучший способ сделать это? Данные должны быть доступны с веб-сервера и будут обновляться время от времени. Класс NSURL - это путь?

спасибо за любую помощь.

Ответы [ 2 ]

5 голосов
/ 27 ноября 2010

Я предлагаю простую веб-технологию на стороне сервера - PHP, Ruby on Rails и т. Д. - которая действует как базовый веб-сервис RESTful-ish, отправляющий JSON.Это просто и не требует большого опыта программирования - для вывода JSON через PHP требуется одна строка кода, а для запроса для получения данных требуется всего несколько, например.

На iPhoneсторона, ASIHTTPRequest позволяет невероятно легко создавать асинхронные запросы на обновления, а SBJSON делает невероятно простым преобразование полученных данных в NSArray NSDictionaries, всего пару строк кода.

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

Например, каждая запись на сервере MYSQL может иметь поле LastModified, которое использует команду при обновлении CURRENT_TIMESTAMP , чтобы поддерживать поле в актуальном состоянии.На iPhone вы также сохраните эти даты.Когда устройство запрашивает и обновляет, оно сначала ищет последнюю дату LastModified для таблицы, которую оно обновляет, и отправляет ее на сервер.Код сервера отправляет обратно все записи, для которых LastModified превышает дату отправки.

Это можно еще более упростить, добавив поле DateCreated на стороне сервера также для каждой записи.Это позволяет серверу возвращать два набора данных, один из которых в поле DateCreated больше отправленной даты LastModified - они будут вставлены в базу данных iPhone - и один устанавливает, когда дата сервера LastModified позже отправленнойно поле DateCreated меньше или равно дате отправки - это строки данных, которые необходимо обновить.

Я только что написал приложение, которое делает это, поэтому проблемы у меня в голове свежие.Надеюсь, это поможет.

1 голос
/ 27 ноября 2010

Вы не можете подключиться к базе данных напрямую. Вам понадобится страница на вашем сервере, которая будет выгружать необходимые области вашей БД в формате JSON или XML. Вы должны посмотреть на TouchJSON.

...