购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

译序

在20世纪60年代,导航式数据库的概念随着磁盘直接存取而发展起来;从70年代开始,关系型数据库登上历史舞台,它的概念一直延续至今。我们无法想象现代的计算机程序中离开了数据库会是怎样的景象,数据库技术已经成了这个世界方方面面的基石。

在数据管理和数据库相关的方面,Apple给出的选择是Core Data。正如在简介中所提到的那样,Core Data其实并不是一个传统意义上的数据库,而是一套对象图管理系统。这套系统默认使用SQLite作为底层存储,通过由低向高地将相关的管理组件构建为一个栈,来提供缓存和对象管理机制。这让我们对于数据对象的存储和访问都能够高效而有序地进行。从这一点上来说,Core Data与单纯的数据库相比,实在是强大得多。

但是能力越大,责任也越大。如果使用不当,那么Core Data不但不能为你提供良好的数据存储和访问的性能,甚至会连最基本的操作都难以保证。在这种情况下,Core Data将不再是你开发的助力,反而会成为掣肘。不幸的是,Core Data本身学习曲线比较陡峭,而涉及的概念又非常多,所以真正想要精通Core Data并完全发挥它的效能并不是很容易的事情。Apple在iOS的很多原生应用中大量使用了Core Data,比如照片、音乐和iBooks等,并且事实证明它们都出色地完成了任务。在国外,也有很多开发者使用Core Data作为应用程序的数据层和持久化的选择。相比其他第三方的解决方案,Core Data不需要引入额外的框架,也相对稳定可靠。但是在国内,现在使用这项技术的开发者较少,大家对Core Data的研究也普遍没有国外深入,这导致了提到Core Data很多人会不自觉地抗拒和躲避。将Core Data的使用方法和最佳实践以更容易理解的方式带给国内开发者,促进大家接触Core Data的架构和思想,这正是我们选择翻译本书的目的。

本书的结构和阅读方法在前言中会有所说明,这里就不再赘述了。需要补充的是,本书里提供了大量的例子和相应的代码,它们大多是需要进行权衡的选择,并对应了不同的场景。只有在你充分理解这些例子的含义后,你才可能在实际使用时做出正确的判断。另外,Core Data的灵活性是一把双刃剑,当你选择了更多的上下文以及协调器时,也意味着你为项目引入了更多的复杂度。尽可能在能够满足需求的前提下,选择最简单的Core Data栈设置,是高效、正确使用Core Data的关键。本书原著的两位作者有着多年的Core Data使用经验。Florian Kugler 是objc.io的联合创始人,曾经为objc.io撰写了很多Core Data相关的文章,深受读者喜爱。Daniel Eggert 曾供职于Apple,帮助Apple将照片应用迁移到Core Data框架内。他们的努力让Core Data这个看起来有些“可怕”的框架变得平易近人,借此我们可以一窥Core Data的究竟。不过不论是原作者还是译者,其实和各位读者一样,都只不过是普通开发者中的一员,所以本书出现谬漏可能在所难免。如果你在阅读时发现了问题,可以通过出版社联系我们,我们将及时研究并加以改进。

最后,祝你阅读愉快。

徐涛
钱世家
王巍 ROqjitb0Fzmzj0YsvzSPRoMQSTMLWusOOh8bNDYepnWXEZnM6WbvxBb/Kf74QVG8

点击中间区域
呼出菜单
上一章
目录
下一章
×