iOS 8 – 创建临时的 NSManagedObjects

标签 ios objective-c cocoa-touch core-data ios8

在 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?谢谢!

--

另外,查看 this iOS 8 论坛上的相关帖子。

最佳答案

在临时上下文中创建您的临时对象,并将您的关系提取到该临时上下文中

将 MOC 用作“便签本”并在最后保存或不保存上下文

这就是我一直在做的事情

关于iOS 8 – 创建临时的 NSManagedObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25407400/

相关文章:

ios - 带有文本字段的 TableView 单元格

ios - 未找到/无法导入 Swift/Obj-C 桥接头

objective-c - IOS 进程内部 - 如何获取信息?

ios - SpriteKit 屏幕尺寸——如何在真机上获得正确尺寸的图像?

iphone - 单击 UIActionSheet 中的按钮会导致我的应用程序崩溃

ios - iOS 6 中的模态视图 Controller 强制横向方向

ios - MKMapView 避免空白图 block [iOS 8+]

iphone - 我怎么知道触发 touchesBegan 的手指也是触发手势的手指?

iphone - 使用指南针方向旋转 MapView

ios - 使用大标题时,不会触发 UIScrollView 中的 UIRefreshControl