在iOS 7(及更早版本)中,有能力有效地创建"临时" NSManagedObject
使用选项稍后将其添加到上下文并保留它,如下所示:
NSEntityDescription* entityDescription = [NSEntityDescription entityForName:@"User" inManagedObjectContext:managedObjectContext];
User* user = [[User alloc] initWithEntity:entityDescription insertIntoManagedObjectContext:nil];
请注意nil
NSManagedObjectContext参数。 (查看Marcus S. Zarra关于此方法的答案here)
但是,iOS 8已经改变了关系的管理方式,因此如果您在设置其上下文之前创建临时对象并添加关系,则在重新启动时将删除该关系:
User* user = [User temporaryEntity];
[user addPhotosObject:photo];
[managedObjectContext:insertObject:user];
[managedObjectContext:&error];
这不会影响非关系对象,但确实无法创建具有关系的临时对象。
是否有人知道如何解释此更改并创建/使用临时工作NSManagedObject
?谢谢!
-
另外,请查看iOS 8论坛上的this相关帖子。
答案 0 :(得分:5)
在临时上下文中创建临时对象,并将关系提取到该临时上下文
使用MOC作为“便笺本”并保存或不在最后保存上下文
这就是我一直在做的事情