3

我有一个使用 CoreData 进行存储的应用程序(iPad 和 Mac Lion)。该应用程序从多个硬件设备导入数据,将数据解码为多个离散事件,并将事件列表呈现给用户,然后用户可以选择保存哪些事件。

目前,我为每个事件创建一个非 CoreData 对象,然后将用户选择的对象转换为 CoreData 实体以保存在存储中。这意味着我基本上每个对象都有两个类;一个托管 CoreData 对象,以及另一个在用户选择它之前表示事件的非托管对象。

我怀疑必须有一种更好、更低的代码开销(阅读:更易于管理)的方法来做到这一点:

  • 我可以创建核心数据实体而不将它们保存到商店中,然后只保存用户选择的那些吗?
  • 还是有其他方法可以使用 CoreData 来构建它?
4

1 回答 1

1

这就是托管对象上下文的用途。:-) 创建一个与显示用户在其“数据库”中的实际数据的普通数据上下文分开的“导入上下文”。在该上下文中创建所有对象(并且不保存),让用户删除他/她不想要的对象,然后在完成导入和保存后合并上下文。

于 2011-10-03T21:07:16.020 回答