ios - 如何创建一个 NSManagedObjectContext 作为另一个 NSManagedObjectContext 的子集?

标签 ios objective-c core-data nsmanagedobjectcontext

我尝试为我的 UITableViewController 使用 NSFetchedResultsController(FRC),因为我喜欢 FRC 附带的功能,而不是尝试手动管理我的 UITableView

我的问题是我需要在 TableView 上有一个过滤器,并且如果不使用“predicateWithBlock”就无法轻松完成我的过滤器,它不适用于我的 FRC See Related Post

所以我现在想做的是专门为我的 FRC 创建一个上下文,然后只将我想要在 FRC 中显示的对象添加到这个单独的上下文中。这样我的 FRC 不需要过滤任何东西,它只需要直接从这个临时上下文中提取对象。

所以我的问题是如何创建这个“子”上下文?这是个好主意吗?

我尝试创建一个空上下文,然后从主上下文插入对象,但尝试手动将 NSManagedObjects 从一个上下文复制到另一个上下文看起来并不简单。我想知道是否有更好的方法来创建我缺少的子集?

NSMangedObjectContext * myFRCContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];

NSArray * managedFoobarObjectsToInsert = [myRealContext getFoobarObjects];

for(id managedObject in managedObjectsToInsert) {
    if([managedObject passesFilterConditions])
        //...now what?
}

最佳答案

So my question is how can I create this 'child' context?

嗯,子上下文是一个东西。只需创建一个上下文并将其parent 设置为您的原始托管对象上下文。

https://developer.apple.com/documentation/coredata/nsmanagedobjectcontext/1506529-parent

NSManagedObjectContext 文档的顶部讨论了子上下文如何与其父上下文相关。

关于ios - 如何创建一个 NSManagedObjectContext 作为另一个 NSManagedObjectContext 的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049559/

相关文章:

ios - 执行某些说明后无法从一个 View 转到另一个 View

ios - 在越狱 iOS 设备的应用程序中包含外部包

ios - 我可以更改 NSLayoutConstraint 的乘数属性吗?

objective-c - 您如何创建一组实体,这些实体都与具有特定属性的其他实体有关系?在核心数据中

iphone - 帮助完成第一个核心数据项目

ios - 从 UIWebView 中删除控制中心中的信息和控件

ios - 使用 xCode 和 Amazon S3 创建正确的 NSString 以进行图像上传

iphone - uint32_t 数组的 NSLog 内容

ios - 发送电子邮件后激活 segue

swift - 核心数据 EXC_BAD_ACCESS