(一)Core Data是什么?
Core Data is a framework that you use to manage the model layer objects in your application. It
provides generalized and automated solutions to common tasks associated with object life cycle and object graph management, including persistence.
Core Data 是在应用程序中用来处理模型层的一个框架,它提供了对象持久化、对象生命周期、对象图表管理等方面的通用解决方法。
Core Data typically decreases by 50 to 70 percent the amount of code you write to support the model layer.
This is primarily due to the following built-in features that you do not have to implement, test, or optimize:
Core Data减少了处理模型层时五到七成的代码量,主要因为它内置了以下特性,从而免于你自己去实现和优化:
- 在基础文字编辑之外改变了“撤销”和“重做”的追踪和内置管理
- 保持更改传播,包括保持对象关系的一致性
- 通过延迟对象和Copy-on-write加载减少了负载。(copy-on-write:在复制一个对象的时候并不是真正的把原先的对象复制到内存的另外一个位置上,而是在新对象的内存映射表中设置一个指针,指向源对象的位置,并把那块内存的Copy-On-Write位设置为1.在对这个对象执行读操作的时候,内存数据没有变动,直接执行就可以。在写的时候,才真正将原始对象复制一份到新的地址,修改新对象的内存映射表到这个新的位置,然后往这里写。
) - 属性值的自动校验,Core Data 的被管理对象(managed objects)拓展了标准的key-value 验证方法,保证值在可接受范围内,使得值得合并是有意义的。
- 模式迁移:Schema migration tools that simplify schema changes and allow you to perform efficient in-place schema migration.
- 对应用程序控制层可选集成,用以支持user interface的同步
- 在内存和user interface对数据进行分组,划分和组织。
- 自动支持额外数据存储存储对象
- 丰富的查询编辑。不同于SQL,你可以通过对NSPredicate对象进行复杂的查询。
- Core Data 提供了内建的版本跟踪和锁机制,来自动解决多写者产生的冲突。
- 与OS X和iOS系统工具链的高效集成