Core Data 是 Cocoa 里面一套非常受欢迎的框架,从 Mac OS X 10.4 提供以来,在 10.5 中引入了完善的 schema 迁移机制,再到 iPhone OS 3.0 时被引入 Cocoa Touch,这套完善的框架都被认为是管理大量结构化数据所首选的 Cocoa 框架,尤其是因为使用 Core Data 能大大减少需要手工编写的代码量,就使它更受开发者欢迎了。
不过最近却出现了一些不同的声音,先是传出消息说 Aperture 3.0 抛弃了 Core Data,改为直接操作 SQLite 数据库 (大家联想到 Apple Mail 3.0 也是直接用 SQLite,没有用 Core Data),但因为都是 Apple 内部的决定,大家只能凭空猜测理由;接下来,NetNewsWire 的开发者 Brent Simmons 也说在NetNewsWire for iPhone 里从 Core Data 转向用 FMDB 来操作 SQLite 数据库 (FMDB 是 Gus Mueller 编写的一层很薄的 SQLite 在 Objective-C 下的封装),Brent 给的理由就很充分了:他要做的很多操作都是对数据批量进行的,其实不需要把所有数据都保存在内存里遍历执行,那样更慢,直接交给数据库,往往一条语句就搞定了,简洁而且快速。
然后 Jonathan ‘Wolf’ Rentzsch 也对此深表赞同,并推荐 Aaron Hillegass 的BNRPersistence 框架,这个框架用 Tokyo Cabinet 提供了一个类似 Core Data 接口的数据持久化方案,最大的优点是比 Core Data 快得多,根据 Aaron 自己的测试,常见的操作都要快 10 ~ 20 倍。其实快这么多也可以理解,毕竟 BNRPersistence 要比 Core Data 轻量得多,支持的功能也少很多,加上 Tokyo Cabinet 这样的 Key-value 数据库在处理适合它的操作时,多数要比 SQLite 这样的关系型数据库要快。
所以突然 Core Data 就有点被墙倒众人推的意思,好像以前大家都知道它不好用,但都不好意思说,直到突然有经验足够丰富的开发者开头,就一涌而上开始骂了。我个人的观感是 Core Data 作为官方方案,给开发提供的许多便利还是不可小视的,但考虑学起来确实也不容易 (所以才有人专门写本书讲 Core Data),所以新上手的 Cocoa 程序员不妨先考虑一下 BNRPersistence, FMDB 这样的方案。
那是否 Core Data 就该被抛弃呢?目前的争议其实有点像 Web 开发里到底该不该用 ORM,区别是大多数 Web 开发者因为历史原因,对直接进行数据库操作有偏好 (或者说,本能地反感 ORM),而多数 Cocoa 开发者则坚定支持用对象操作数据,所以长远来看,数据持久化方案在 Cocoa (Touch) 开发里少不了,唯一的疑问是 Apple 会不会继续改进 Core Data 的性能和接口,以拉近与第三方方案的差距,只要 Apple 还在不断改进,Core Data 就有学习的必要。
我个人对 Core Data 的怨念主要是在要写的“胶水代码”上:有的时候为了方便与界面的 bindings 操作,不得不给 Model 写大量重复的胶水代码,所以如果第三方的方案如果在这方面有简化,我很乐意改用。
相关推荐
可以用这个软件来制作启动U盘,方便维护MAC系统。15天试用,足够把系统装好了。
It can read and write disk images and create Mac CD volume files that can be written to CDR or CDRW using external CD writing software. If you are working with Windows and Mac computers, this is a ...
trans
IEEE trans期刊整理1
用手机识别用户的交通方式,如跑步,步行,骑车,开车等等
ieee trans 类文章总结 例如IEEE TRANSACTIONS ON ADVANCED PACKAGING ADVP IEEE Trans. Adv. Packag. CPMTB* IEEE Trans. Compon., Packag., Manuf. Technol. B* (1994–1998) IEEE TRANSACTIONS ON AEROSPACE ...
TransMac.11.0内附注册,在windows下制作mac的启动盘
TransMac,TransMac,TransMac,TransMac,TransMac,TransMac,TransMac
IEEE Trans系列期刊论文word模板,可以直接将自己的内容复制到模板中,不用做任何修改,大大节省了论文格式修改的时间,亲测好用。
trans-formas仪表操作
TransMac 制作驱动盘必备工具TransMac
TransE算法,C++代码实现
这个是IEEEtrans论文的latex模板,最新的,按照这个模板就可以排除包括TIP,TPAMI等等trans的论文
transmac 10.3 注册版,在Win下访问Mac分区并操作的软件 高于这个版本的找不到序列号
TransMac DMG镜像恢复到磁盘的工具
TransE的直观含义,就是TransE基于实体和关系的分布式向量表示,将每个三元组实例(head,relation,tail)中的关系relation看做从实体head到实体tail的翻译(其实我一直很纳闷为什么叫做translating,其实就是向量...
分享一款免安装的TransMac,版本是11.4,可用于将U盘格式化成Mac的磁盘格式,可用于将dmg格式的Mac镜像写入U盘
TransMac 10.2 注册版,安装mac要用到的工具
绿色免安装TransMac
TRANS-JOUR.zip