我尝试为我的 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/