获取结果时发生崩溃控制器在保存后台MOC后更新表

我有一个连接到一个FRC(Fetched Results Controller)的tableView,我也有两个上下文,分别是在私有队列中初始化的backgroundContext和在主队列上初始化的mainContext。 我还设置了didSaveNotification将对象从一个上下文传递给另一个上下文。 当我在backgroundContext保存一些数据,它保存成功和FRC更新,但如果我再次重复该过程应用程序崩溃与一个错误

'ALL或ANY操作符的左侧必须是NSArray或NSSet。

保存是通过模态显示的forms完成的。 相同的viewController工作正常,如果出现在其他viewControllers。 但只在一个特定的一个崩溃。 但是再次提交表单没有其他额外的东西正在做。

这是我的整个崩溃报告。

由于未捕获exception“NSInvalidArgumentException”而终止应用程序,理由:'ALL或ANY操作符的左侧必须是NSArray或NSSet。 *第一个抛出调用栈:(0 CoreFoundation 0x0000000103575495 exceptionPreprocess + 165 1 libobjc.A.dylib
0x0000000102fbb99e objc_exception_throw + 43 2基金会
0x00000001003c706b – [NSPredicateOperator performOperationUsingObject:andObject:] + 826 3 Foundation
0x00000001003c6c1e – [NSComparisonPredicate evaluateWithObject:substitutionVariables:] + 314 4 Foundation
0x00000001003c6ae2 – [NSPredicate evaluateWithObject:] + 19 5
CoreData 0x0000000102d61d06 – [NSFetchedResultsController(PrivateMethods)_objectInResults:] + 102 6 CoreData 0x0000000102d630f7 – [NSFetchedResultsController(PrivateMethods)_preprocessUpdatedObjects:insertsInfo:deletesInfo:updatesInfo:sectionsWithDeletes:newSectionNames:treatAsRefreshes:] + 519 7 CoreData 0x0000000102d642d5 – [NSFetchedResultsController(PrivateMethods)_managedObjectContextDidChange: ] + 1781 8 CoreFoundation 0x00000001035cad9c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER + 12 9 CoreFoundation 0x000000010352d51d _CFXNotificationPost + 2381 10 Foundation 0x000000010035b7fa – [NSNotificationCenter postNotificationName:object:userInfo:] + 68 11 CoreData
0x0000000102c9048a – [的NSManagedObjectContext(_NSInternalNotificationHandling)_postObjectsDidChangeNotificationWithUserInfo:] + 74 12 CoreData 0x0000000102d16c8b – [的NSManagedObjectContext(_NSInternalChangeProcessing)_createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] + 331 13 CoreData 0x0000000102c8c9cc – [的NSManagedObjectContext(_NSInternalChangeProcessing)_postRefreshedObjectsNotificationAndClearList] + 108 14 CoreData 0x0000000102c8c5e4 – [ NSManagedObjectContext(_NSInternalChangeProcessing)_processRecentChanges:] + 2804 15 CoreData 0x0000000102c663cb _performRunLoopAction + 267 16 CoreFoundation
0x0000000103540dc7 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 23 17 CoreFoundation 0x0000000103540d37 __CFRunLoopDoObserver + 391 18 CoreFoundation 0x0000000103520522 __CFRunLoopRun + 946 19 CoreFoundation
0x000000010351fd83 CFRunLoopRunSpecific + 467 20 GraphicsServices
0x00000001037ecf04 GSEventRunModal + 161 21 UIKit
0x00000001011bde33 UIApplicationMain + 1010 22 Expense_Manager
0x0000000100001d13 main + 115 23 libdyld.dylib
0x000000010420c7e1 start + 0)libc ++ abi.dylib:以NSExceptiontypes的未捕获exception终止

提前致谢。

好吧,我实际上发现了几天前发生这种事的原因。 有一个通知被解雇,当表格解散了,从另一个viewController重新加载一个tableView到一个FRC共享相同的上下文。 一旦我在viewDidDisappear中以观察者身份移除它,它并没有崩溃。 :)我希望这有助于防止有人面临同样的问题。