我正在创建一个新的NSManagedObject并将其插入到具有并发类型私有队列的上下文中(因此它在后台线程上运行)。
在我保存之前,我称之为:
[appDelegate.backgroundMOC obtainPermanentIDsForObjects:
[NSArray arrayWithObject:newObject] error:&error];
然后我保存:
[appDelegate.backgroundMOC save:&err];
但是,我收到了EXC_BAD_ACCESS崩溃。看看堆栈跟踪,我看到了:
0 semaphore_wait_trap
7-[NSManagedObjectContentSave:]
我猜测有问题的行是semaphore_wait_trap
,但我不确定是怎么造成的。
如果我注释掉obtainPermanentIDsForObjects
行,则问题就会消失。
有什么想法吗?
答案 0 :(得分:1)
由于获取对象ID(http://openradar.appspot.com/11478919)存在错误,您需要将所有新创建的对象传递给-[NSManagedObjectContext obtainPermanentIDsForObjects:error:]
。