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