Dev*_*fly 4 iphone cocoa-touch core-data nsmanagedobjectcontext
你好,有什么区别
[self.context refreshObject:site mergeChanges:YES];
Run Code Online (Sandbox Code Playgroud)
和
[self.context save:nil];
Run Code Online (Sandbox Code Playgroud)
有时我会同时使用它们,有时我只使用它们save.它适用于两种情况.
-save:保存您在上下文中对任何托管对象所做的更改.这意味着它们被刷新到持久性存储协调器,然后持久性存储协调器将它们写入持久性存储,将其写入磁盘(假设磁盘支持的存储).
另一方面,-refreshObject:mergeChanges:做了一些完全不同的事情.它读取所述物体的从持久存储协调器的当前状态(其从持久存储中读取,等等).传递YES的mergeChanges方式保留任何本地修改的对象不变,只更新没有改变的字段.这几乎与之相反-save:.
作为一个简单的思想实验,如果您运行-save:然后终止您的应用,则在下次启动时,您的修改后的数据仍然可用.如果您运行-refreshObject:mergeChanges:然后终止您的应用,您的任何本地更改都将丢失.
| 归档时间: |
|
| 查看次数: |
2681 次 |
| 最近记录: |