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

如何在iphone中维护本地数据库,iphone,objective-c,Iphone,Objective C,我是一名专注于iphone应用程序开发的软件工程师,拥有开发者许可证。 目前我正在做一个项目,我需要在iphone中维护一个本地数据库。每次应用程序启动时,应用程序都应同步来自远程服务器的数据。应用程序应该添加/更新/删除与来自远程服务器的数据相对应的本地表条目 我计划使用SQLite数据库。我想知道是否有任何框架可用于同步这两个数据库?还有iphone支持的其他数据库吗?我最近完成了一个类似的应用程序(至少在数据库功能方面),我发现核心数据非常宝贵。它允许您定义一个数据模型(类似于远程数据库中

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


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

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

该框架将抽象出诸如底层持久性机制之类的内容,因此您可以使用SQLite(默认值)或一些其他数据存储格式(XML是一种选项,IIRC)。您还可以以面向对象的方式操作数据记录,这在驱动应用程序的其他部分(如UI)时非常方便。有关更多信息,请查看


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

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

该框架将抽象出诸如底层持久性机制之类的内容,因此您可以使用SQLite(默认值)或一些其他数据存储格式(XML是一种选项,IIRC)。您还可以以面向对象的方式操作数据记录,这在驱动应用程序的其他部分(如UI)时非常方便。有关更多信息,请查看


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

我也在做这件事,而且还将使用核心数据。我计划使用可达性API来确定是否能够同步,然后使用JSON从远程服务器传输数据。核心数据非常易于使用,您根本不必直接构建SQL。它还可以自动管理将对象保留在内存中,这将有助于提高内存使用率,就像在iPhone这样的受限环境中一样。

我也在研究这一点,并且还将使用核心数据。我计划使用可达性API来确定是否能够同步,然后使用JSON从远程服务器传输数据。核心数据非常易于使用,您根本不必直接构建SQL。它还自动管理将对象保留在内存中,这将有助于提高内存使用率,就像在iPhone这样的受限环境中一样。

仅供参考,我(几乎完全肯定)iPhone的CoreData实现只允许将数据存储在sqlite数据库中,与桌面版本不同,桌面版本有几个不同的支持选项。根据,iPhone上没有XML(因此我的一个例子是错误的:),但是你有一个原子和内存存储,以及定义自己存储类型的能力。不过,这是一个很好的建议,因为它比完整的Mac平台更为有限。仅供参考,我(几乎完全肯定)CoreData的iPhone实现只允许将数据存储在sqlite数据库中,这与桌面版本不同,桌面版本有几个不同的备份选项。根据,iPhone上没有XML(因此我的一个示例是错误的:),但是您确实可以获得一个原子和内存存储,以及定义自己的存储类型的能力。不过,这是一个不错的选择,因为它比一个完整的Mac平台更加有限。