【发布时间】:2013-09-17 09:52:18
【问题描述】:
我的应用中有一个搜索栏和一些过滤器,它们创建了两个谓词。一个用于搜索栏中的字符串,一个用于过滤器 (UISegmentedControl)。
当使用谓词并在上下文中插入一个对象然后调用-save: 时,应用程序崩溃:
CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. Can't use in/contains operator with collection 1379410732 (not a collection) with userInfo (null)
在保存点:
不使用谓词时不会发生这种情况。
我可以在保存过程中以某种方式删除谓词吗?我已经通过获取NSFetchRequest 进行了尝试,但我无法将其设置回控制器。
编辑
我还尝试将self 添加为NSManagedObjectContextDidSaveNotification 上的观察者,然后使用-mergeChangesFromContextDidSaveNotification: 就像关于SO 的一次讨论所建议的那样。这也没有帮助。
【问题讨论】:
-
也许显示谓词?
-
谢谢马丁,我刚刚发现了问题。该解决方案仍有一个令人困惑的部分,但崩溃已修复。你是对的,它是谓词。
标签: ios core-data nspredicate nsfetchedresultscontroller