iPhone上是不是有首选的数据库管理/对象持久性方法?

Posted

技术标签:

【中文标题】iPhone上是不是有首选的数据库管理/对象持久性方法?【英文标题】:Is there a preferred method of database management/object persistence on the iPhone?iPhone上是否有首选的数据库管理/对象持久性方法? 【发布时间】:2009-04-28 14:20:42 【问题描述】:

我见过几种方法,每种方法似乎都有显着的优点和缺点。我正在学习 iPhone 开发,我正在构建一个相对简单的应用程序,它的核心实际上只不过是对 3 或 4 个相关实体的 CRUD 操作。

我习惯了 ActiveRecord 类型的对象持久化。我在网上看到的关于 Cocoa Touch 的实现通常被称为非常慢。

我在网上看到的大多数示例(特别是 Pragmatic Programmers 截屏视频)都将 SQL 硬编码到控制器类中,这对我来说似乎不合适。看起来很老派(但在这种情况下,老派可能是最好的)。

我知道我们不能在这里讨论 SDK 3.0,但众所周知,CoreData 即将用于 iPhone,这当然会限制我的听众(我不确定我是否真的这么关心。它将是一个出售的应用程序,但我不打算用它取代我的职业)

我还没有尝试过 Gus Mueller 的 FMDB,但我读过好东西。

您有哪些经验,哪些有效,哪些无效。您会建议(仍然是新手)iPhone 程序员在哪里投入时间?

【问题讨论】:

【参考方案1】:

目前,应用程序中有很多半原始 SQL 编码,因为没有用于更高级别工作的内置系统。 FMDB 是一种很好的方法,但它只是将 SQLite 调用包装成更类似于 Objective-C 的东西。这在某些情况下很好,但显然不是所有情况。

如果您熟悉 ActiveRecord,那么SQLite Persistent Objects 可能对您有用,因为它旨在类似于 ActiveRecord。我也没有使用过,所以我无法告诉你它实际上有多相似。如果由于某种原因这看起来不正确,那么此时最好以 3.0 为目标并利用 Core Data。

【讨论】:

恐怕我得出的结论正是你所说的。 SQLlite Persistent Objects 是一个相当慢的对象。我相信这将是“短期被诅咒”并以 CoreData 为目标,因为这将是今年夏天被接受的方式。我在将 Core Data 添加到现有应用程序时遇到了麻烦,但我只是在几分钟内使用 Core Data 将整个应用程序移植到“基于窗口的应用程序”模板中。所以......它什么也没做,但至少它没有像昨晚那样崩溃。

以上是关于iPhone上是不是有首选的数据库管理/对象持久性方法?的主要内容,如果未能解决你的问题,请参考以下文章

在 iphone/ipad 的持久存储上加密数据的最安全方法是啥?

iPhone UIImage - 数据持久性

用于在 iPhone 设备上显示持久存储内容的 GUI

Java面试题整理二(侧重SSH框架)

pythonpickle模块

iPhone 上的存档位置