我为什么要将Core Data用于我的iPhone应用程序?

N. *_*ham 46 iphone core-data

我正在开发我的第二款iPhone应用程序并对Core Data感到好奇.项目的时间有限,我的整体时间也是如此.

我是唯一的开发者,我觉得Core Data会很有用,但我无法清楚地解释原因.

请原谅以下混淆..应用程序需要从中央服务器检索foos列表.然后,用户可以从条形列表中添加一个条形到foos,然后将baz((??)列表中的baz添加到条形图,然后向baz添加一些可选的照片和描述.

一旦用户对他们的bar和baz工作感到满意,他们就会点击同步按钮将他们的数据上传回中央服务器.

正如您所看到的,它是一个简单的数据驱动钻取应用程序,但我仍然不确定我是否可以证明在时间限制下使用Core Data - 学习曲线看起来很陡峭.

如果向我的老板争辩说我们应该使用核心数据,我可以向他射击什么要点?逻辑手榴弹也很受欢迎.

Tim*_*Tim 57

核心数据将主要帮助应用程序的辅助方面 - 数据持久性,演示等等.老板的一些要点:

  • Core Data为您管理保存和撤消功能.它有一个持久存储,可以跟踪更改,并且可以在任何次数(app close等)自动刷新到磁盘.
  • 核心数据和相关类提供了将实体放入UITableViews的简便方法,例如NSFetchedResultsController.
  • 核心数据抽象出许多你本来必须处理的混乱事物,例如对象列表,一对多或多对多关系,或对象属性的约束,变成一个很好的清洁面向对象的接口.
  • Core Data附带了一个漂亮的图形对象模型编辑器,可以帮助您思考对象/实体设计,并随时进行优化.(它还支持迁移,因此如果您稍后决定要在实体上使用不同的属性,则可以相对轻松地执行此操作.)

当然,学习曲线可能有点陡峭,但Apple的例子非常棒,Core Data文档非常完整且有用.一旦你有了Core Data,那么构建你的应用程序就变得轻而易举了.

  • 添加到列表中的事实是,在许多情况下,Core Data可以比原始SQLite具有更好的性能,无论是CPU还是内存.对NSFetchedResultsController使用批量读取是一行代码,但它可以带来显着的性能提升.我已经看到Core Data在桌面应用程序上击败了手动调整的SQLite代码,我确信在将其带到iPhone时性能是一个优先事项. (8认同)

jus*_*tin 8

要利用CoreData,您需要了解相当数量的Cocoa技术,概念和模式.如果你了解这些事情,学习曲线并不是很陡峭.如果它看起来很陡,我会避免让它对你的项目至关重要,然后在停机期间学习,最后在你熟悉之后使用它.它绝对不是一个初学者技术; 你需要一个良好的编程基础,包括Cocoa特定的技术和概念.很多人都看到它,并认为这对他们来说很容易,因为他们可以免费获得很多.它就像一个代码生成器,对于那些使用它来执行此操作(生成代码)的人来说非常无用,而不是巧妙地使用它来响应问题集.


Ian*_*nry 6

就学习曲线而言,我认为它并不像你想象的那么糟糕.使用Apple的示例类和默认的CoreData项目模板,我能够在一个下午有一个可用的CoreData应用程序(相当简单,但不是微不足道),并且在我有一个代码之前只花了几天时间玩代码非常了解所有移动部件是什么(在开发应用程序的其余部分时,所以没有时间浪费在修改上).

CoreData工作非常......逻辑上,我猜,它非常方便.它为您节省了大量开销,我知道它确实为我节省了大量时间来编写该应用程序.从长远来看,学习新技术的初期投资非常值得,因为我的皮套中有这么强大的工具.