iOS学习笔记(30) Core Data是如何保存的?
本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,请尊重版权并且保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS方式订阅本站,这样您将能在第一时间获取本站信息。
开场扯淡
恩 一个月没有写一篇blog了。恩。就这样把。
学习使用Core Data也一年多了。之前以为3个月就可以登堂入室。事实是我图样图森破。到现在我也才勉强hello world而已。
比如这个问题 Core Data是如何保存的。
一直使用MagicalRecord 都被宠习惯了。 直接就调用MR_saveToPersistentStoreAndWait。反正能存进去,也没有太仔细的思考。
恩 最近对Core Data的技能点在进行增加中。所以还是多记录一些。
恰好看见了 DM大神的 blog How Does Core Data Save?
也不算翻译,就是自己写个自己的精简版本看看。
Core Data是如何保存的
- 当然是NSManagedObjectContext调用save方法的时候。
- 这时候context里面持有的那些NSManagedObject将会自己调用自己的willSave方法。
- NSManagedObjectContextWillSaveNotification发出。
- 开始验证。这个验证可能是你在data model里面写的。也可以是在NSManagedObject里面代码写的。
- 验证结束以后数据就合并到NSPersistentStoreCoordinator和NSPersistentStore里面。
- 如果你在合并的时候更改了数据。这时候会重新验证数据。
- 这个时候已经把需要验证过的合并数据存到持久化介质当中。
- 最后NSManagedObjectContextDidSaveNotification这个通知发出。
参考资料
iOS学习笔记(30) Core Data是如何保存的?