База данных mySQL в приложение для iPhone

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

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


person hanumanDev    schedule 27.11.2010    source источник


Ответы (2)


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

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

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

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

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

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

person Matthew Frederick    schedule 27.11.2010

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

person Ross    schedule 27.11.2010