为 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 创建实例但不将其保存到上下文中的主要内容,如果未能解决你的问题,请参考以下文章

创建但不保存 NSManagedObjects

使用 Restkit 为 NSManagedObject 类创建实例

rdd.saveAsCassandraTable() 创建表但不将 rdd 项写入 Cassandra

ios核心数据:如何更改NSManagedObject而不将其保存到上下文中

Laravel Artisan Migrate 命令创建表但不将每个迁移文件填充到迁移表

使用 ghostscript 将 PDF 转换为 TIFF 但不将文件写入磁盘