每次面试时都会问到Coredata,但是总是忘记,现在来加深一下记忆!
1. 变化跟踪和支持撤销
Core Data 提供内置的撤销与恢复功能
2. 关系维护
Core Data管理对象之间的一致性,类似于sql中的cascade
3. Futures
Core Data可以通过懒加载模式减少过度消耗内存
4. 自动验证属性
Core Data的managed Object 继承标准的KVC(key-value coding)验证方法来确保每个值在有效范围内
5. 数据迁移
无论是在开发上还是在运行时,迁移数据是不容易的,Core Data的Scheme迁移工具简化了数据的复制变化的任务,在某些情况下,可以很快的完成数据迁移;
6. 支持可选的集成与应用程序的控制器层用户接口同步。
Core Data在iOS上提供NSFetchedResultsController
7. 完全自动知识KVC和KVO(Key-Value-Observing)
为了同步KVC和KVO的兼容性,Core Data实现了一对多关系的accessors;
8. 在内存和用户接口中进行分组,搜索,组织数据
9. 自动支持排序
10. 复杂的查询编译
不用写SQL,可以通过NSPredicate和NSFetchRequest实现复杂的查询,NSPredicate提供了基本的功能,相关子查询和高级查询,Core Data也支持Unicode,本地化搜索,排序和正则表达式。
11. 合并策略
Core Data 提供内置的版本控制和可以解决多个冲突操作的乐观锁