如何在iphone中维护本地数据库

时间:2009-12-21 06:46:18

标签: iphone objective-c

我是一名专注于iphone应用程序开发的软件工程师,拥有开发人员许可证。 目前我正在开发一个项目,我需要在iphone中维护一个本地数据库。每次启动应用程序时,应用程序都应该从远程服务器同步数据。应用程序应添加/更新/删除与远程服务器上的数据相对应的本地表条目。

我计划使用SQLite DB。我想知道是否有可用于同步这两个数据库的框架?还有iphone支持的其他数据库吗?

2 个答案:

答案 0 :(得分:1)

我也正在研究这个问题,我也将使用Core Data。我打算使用Reachability API来确定我是否能够同步,然后使用JSON从远程服务器传输数据。核心数据非常易于使用,您根本不需要直接构建SQL。它还会自动管理为您保留内存中的对象,这将有助于您在像iPhone这样的受限环境中使用内存。

答案 1 :(得分:0)

我最近完成了一个类似的应用程序(至少在数据库功能方面),我发现Core Data非常宝贵。它允许您定义数据模型 - 类似于远程数据库中的数据库模式 - 然后您可以以最适合您的任何格式提取数据并将其存储在Core Data中。

框架将抽象出基础持久性机制之类的东西,因此您可以使用SQLite(默认)或其他几种数据存储格式(XML是一种选项,IIRC)。您还可以以面向对象的方式操作数据记录,这在驱动应用程序的其他部分(如UI)时非常方便。有关详细信息,请查看Core Data Programming Guide

至于同步框架本身,我不知道有什么预构建可以满足您的需求。我的解决方案是让服务器上的SQL守护进程生成XML(MySQL恰好有一个方便的命令行选项--xml用于此目的),然后在iPhone端使用NSXMLParser将XML解析回Core Data对象(当然其他人会推荐libxml - 我只是坚持最容易获得的东西)。