我可以在没有特定NSManagedObjectContext的情况下创建NSManagedObject的实例吗?

时间:2011-08-30 13:47:17

标签: iphone core-data

我正在构建一个应用程序,该应用程序从Web API接收大量列表,并允许用户保存一些用于离线查看。我通常的做法是:

  1. 从API获取数据,并为每个数据创建一个新的Listing对象
  2. 如果用户选择这样做,请将对象保存到数据库。
  3. 但这是一个核心数据应用程序,因此上下文是保存的,而不是对象。在这种情况下,上述情况会变成这样:

    1. 从API获取数据,并为每个数据创建一个非托管的Listing对象
    2. 如果用户选择这样做,则将对象移动到托管上下文中,然后保存上下文
    3. 拥有一个非托管和托管版本的Listing对象的一种方法是拥有两个类,例如: ManagedListing和UnmanagedListing - 但这是一种可怕的重复方式。

      我想要的是使列表成为NSManagedObject的子类;在没有NSManagedObjectContext的情况下初始化它们;然后,当我想保存一个时,我要么设置它的上下文,要么将其属性复制到上下文中的新列表。

      我可以在没有特定NSManagedObjectContext的情况下创建NSManagedObject的实例吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:7)

使用两个持久存储,一个在内存中,一个在磁盘上。如果用户想要保存,请使用assignObject:toPersistentStore:将对象移动到其他商店。

答案 1 :(得分:0)

在iOS< 5.0 - 。 在iOS> = 5.0 -