2009-04-28 15 views
2

我见过几种方法,每种方法都有显着的优点和缺点。我正在学习iPhone开发,我正在构建一个相对简单的应用程序,它的核心部分实际上不仅仅是针对3个或4个相关实体的CRUD操作。iPhone上有数据库管理/对象持久化的首选方法吗?

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

我在网上看到的大多数例子(特别是Pragmatic Programmers screencasts)都将SQL硬编码到控制器类中,这看起来对我来说并不恰当。看起来很古老的学校(但在这种情况下,也许老派最好)。

我知道我们不能在这里讨论SDK 3.0,但是CoreData即将面向iPhone的常识是,这当然会限制我的观众(我不确定我是否真的在意这一点。是一个应用程序出售,但我不打算取代我的职业生涯)

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

什么是你的经验,什么有效,什么没有。你会在哪里推荐一个(仍然非常新手)的iPhone程序员投入他们的时间?

回答

2

现在在应用程序中有很多半原始的SQL编码,因为没有用于高级工作的内置系统。 FMDB是一个很好的方法,但它只是将SQLite调用包装到更多Objective-C中。这对某些情况很好,但显然不适合所有的情况。

如果您熟悉ActiveRecord,那么SQLite Persistent Objects可能对您有用,因为它旨在与ActiveRecord类似。我还没有用过,所以我不能告诉你它实际上有多相似。如果由于某种原因,这看起来不正确,那么最好在这一点上瞄准3.0并利用核心数据。

+0

恐怕我得出的结论正是你所说的。 SQLlite持久对象是一个非常缓慢的对象。 我相信这将是“短期被诅咒的”并且是CoreData的目标,因为这将是今年夏天的公认方式。 我在添加核心数据到我现有的应用程序时遇到了麻烦,但我只是换了另一种方式,并在几分钟内使用核心数据将我的整个应用程序移植到“基于窗口的应用程序”模板中。所以......它什么也没做,但至少它没有崩溃,就像昨晚一样。 – mmc 2009-04-28 17:54:20

相关问题