为 NSManagedObject 创建实例但不将其保存到上下文中

Posted

技术标签:

【中文标题】为 NSManagedObject 创建实例但不将其保存到上下文中【英文标题】:Creating instance for NSManagedObject but not saving it into context 【发布时间】:2016-06-27 12:48:57 【问题描述】:

我正在通过以下代码 sn-p 为 Employee 对象创建一个实例

NSEntityDescription *entity = [NSEntityDescription entityForName: Employee
                                          inManagedObjectContext:self.managedObjectContext];
Employee *blioDownloadInfo = [[Employee alloc] initWithEntity:entity
                                               insertIntoManagedObjectContext:nil];

我已为员工对象分配了 ID 和名称,但尚未保存 managedObjectContext。

我正在使用不同实体在上下文中执行一些其他操作并保存了上下文。在这种情况下,我有 2 个问题。

1.首先,员工实例是否存在于上下文中?

2。上下文会丢失员工对象吗?

【问题讨论】:

【参考方案1】:

实体实例在上下文中不存在是因为你没有添加它,这是因为你在insertIntoManagedObjectContext:nil中传递了nil

所以上下文不能丢失它。如果您丢弃对它的引用,您可能会丢失它。

准备好后,调用insertObject:,然后您在上下文中进行的任何保存都将涉及实体实例。

【讨论】:

以上是关于为 NSManagedObject 创建实例但不将其保存到上下文中的主要内容,如果未能解决你的问题,请参考以下文章