как поддерживать локальную базу данных в iphone - PullRequest
1 голос
/ 21 декабря 2009

Я инженер-программист, занимаюсь разработкой приложений для iphone и владею лицензией разработчика. В настоящее время я работаю над проектом, в котором мне нужно поддерживать локальную базу данных в iphone. Каждый раз, когда приложение запускается, оно должно синхронизировать данные с удаленного сервера. Приложение должно добавить / обновить / удалить записи локальной таблицы, соответствующие данным с удаленного сервера.

Планирую использовать БД SQLite. Я хотел бы знать, есть ли какая-либо структура, доступная для синхронизации этих двух баз данных? Также есть ли другая БД, которая поддерживается iphone?

Ответы [ 2 ]

1 голос
/ 21 декабря 2009

Я тоже работаю над этим и собираюсь использовать Core Data. Я планирую использовать API Reachability для определения возможности синхронизации, а затем использовать JSON для передачи данных с удаленного сервера. Базовые данные действительно просты в использовании, и вам вообще не нужно создавать SQL напрямую. Он также автоматически управляет хранением объектов в памяти, что поможет с использованием памяти, как у вас в ограниченной среде, такой как iPhone.

0 голосов
/ 21 декабря 2009

Я недавно закончил подобное приложение (по крайней мере, с точки зрения функциональности базы данных), и я обнаружил, что базовые данные неоценимы. Он позволяет вам определить модель данных - аналогично схеме базы данных из вашей удаленной базы данных - затем вы можете извлечь данные в любом формате, который вам больше подходит, и сохранить их в Core Data.

Фреймворк будет абстрагировать такие вещи, как базовый механизм персистентности, поэтому вы можете использовать SQLite (по умолчанию) или пару других форматов хранения данных (XML является опцией, IIRC). Вы также можете манипулировать записями данных объектно-ориентированным способом, что невероятно удобно при управлении некоторыми другими частями вашего приложения (например, пользовательским интерфейсом). Посмотрите Руководство по программированию основных данных для получения дополнительной информации.

Что касается самой структуры синхронизации, я не знаю ничего предустановленного, которое делает то, что вы ищете. Мое решение состояло в том, чтобы позволить демону SQL на сервере генерировать XML (для этой цели MySQL имеет удобную опцию командной строки --xml), а затем использовать NSXMLParser на конце iPhone для анализа XML обратно в объекты Core Data ( конечно, другие люди будут рекомендовать libxml - я просто придерживался того, что было наиболее доступно).

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