我正在尝试为我的UITableViewController使用NSFetchedResultsController(FRC),因为我喜欢FRC附带的功能,而不是尝试手动管理UITableView
我的问题是我需要在表视图上有一个过滤器,并且如果不使用无法与我的FRC See Related Post
一起使用的'predicateWithBlock',就无法轻松完成过滤器因此,我现在要做的是为我的FRC创建一个专用的上下文,然后仅将要在FRC中显示的对象添加到此单独的上下文中。这样,我的FRC不需要过滤任何内容,只需要将对象直接从此临时上下文中拉出即可。
所以我的问题是如何创建“孩子”上下文?这是个好主意吗?
我尝试创建一个空上下文,然后从主上下文中插入对象,但是尝试将NSManagedObjects从一个上下文手动复制到另一个上下文看起来并不简单。我想知道是否有更好的方法来创建丢失的子集?
NSMangedObjectContext * myFRCContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
NSArray * managedFoobarObjectsToInsert = [myRealContext getFoobarObjects];
for(id managedObject in managedObjectsToInsert) {
if([managedObject passesFilterConditions])
//...now what?
}
答案 0 :(得分:0)
所以我的问题是如何创建“孩子”上下文?
好吧,子上下文是一回事。只需创建一个上下文并将其parent
设置为原始的受管对象上下文即可。
https://developer.apple.com/documentation/coredata/nsmanagedobjectcontext/1506529-parent
NSManagedObjectContext文档的顶部讨论了子上下文如何与其父上下文相关。