我有一个应用程序(iPad 和 Mac Lion),它使用 CoreData 进行存储。该应用程序从多个硬件设备导入数据,将数据解码为多个离散事件,并向用户呈现事件列表,然后用户可以选择保存哪些事件。
目前,我为每个事件创建一个非 CoreData 对象,然后将用户选择的事件转换为 CoreData 实体以保存在商店中。这意味着我基本上为每个对象都有两个类;一个托管 CoreData 对象,以及另一个表示用户选择事件之前的事件的非托管对象。
我怀疑必须有一种更好、代码开销更低(阅读:更易于管理)的方法来做到这一点:
- 我可以创建核心数据实体而不将其保存到存储中,然后仅保存用户选择的实体吗?
- 或者是否有其他方法可以使用 CoreData 来构建它?
最佳答案
这就是 Managed Object Contexts是给。 :-) 创建一个与显示用户“数据库”中实际数据的普通数据上下文分开的“导入上下文”。在该上下文中创建所有对象(并且不保存),让用户删除他/她不想要的对象,然后在完成导入和保存后合并上下文。
关于macos - 导入数据的核心数据最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640488/