7

我正在尝试为我的应用程序编写一个收藏夹系统。我已经将我的模型转换为托管对象。想象一下,用户会看到一个包含这些对象列表的屏幕。他们可以选择将一些保存到他们的收藏夹中,这会将它们保存在核心数据中。

问题是,当我创建所有这些模型对象时,我使用的是托管对象上下文。如果用户将单个实体保存到他们的收藏夹,它将保存整个上下文,并保留每个实体。临时演员不会在他们的收藏夹中,因为添加到收藏夹会构造一个“收藏夹”实体,该实体会被保存并指向其他人没有的对象。但是所有其他对象都将被不必要地保存。

设计 iPhone 收藏夹系统的标准方法/标准方法是什么?我是否应该将我的模型分为两类,一类是我向用户展示的,一类是保存到数据库的?这样我就可以在不将它们放入 MOC 的情况下构建我的模型。但这将是一个具有所有相同字段的重复类。

4

2 回答 2

7

没有真正的标准方法来执行此操作,因为 Core Data 期望您保存您创建的对象。但是,如果您使用以下命令创建对象:

id object = [[NSManagedObject alloc] initWithEntityDescription:entity inManagedObjectContext:nil];

他们将没有可以保存的上下文。然后对于您需要保存的那些,您可以:

[[self managedObjectContext] insertObject:object];

然后调用-save:上下文,只有那些已经设置了上下文的才会保存。

于 2010-08-26T15:56:19.217 回答
-1

在您的托管对象上拥有一个 isFavorite 属性会不会更容易。然后在您的收藏夹视图中,您可以根据它进行过滤吗?

于 2010-08-26T16:10:06.827 回答