核心数据:创建多个托管对象,但只保存一些?

Tes*_*rex 7 iphone favorites core-data

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

问题是,当我创建所有这些模型对象时,我使用托管对象上下文.如果用户将单个节目保存到他们的收藏夹中,则会保存整个上下文,并保留每个单个实体.临时演员不会是他们的最爱,因为添加到收藏夹构造一个被保存并指向的对象,其不会对他人产生"最喜欢"的实体.但是所有其他对象都将被不必要地保存.

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

Mar*_*rra 7

实际上没有一种标准的方法,因为Core Data希望您保存您创建的对象.但是,如果使用以下方法创建对象:

id object = [[NSManagedObject alloc] initWithEntityDescription:entity inManagedObjectContext:nil];
Run Code Online (Sandbox Code Playgroud)

他们没有可以存储的背景.那么对于你需要保存的那些你可以:

[[self managedObjectContext] insertObject:object];
Run Code Online (Sandbox Code Playgroud)

然后调用-save:上下文,只有已设置其上下文的那些将保存.