我正在使用经典的多个MOC共享相同的NSPersistentStoreCoordinator,据我所知它比父/子上下文表现得更好: http://floriankugler.com/blog/2013/4/29/concurrent-core-data-stack-performance-shootout
我非常谨慎地创建上下文并在创建它们的线程/队列上使用它们。
僵局就是这样:
主线程正在执行获取请求并挂在[NSManagedObjectContext executeFetchRequest:error:]
中的互斥锁上#0 0x3ad840fc in __psynch_mutexwait ()
#1 0x3accd128 in pthread_mutex_lock ()
#2 0x328eee90 in -[_PFLock lock] ()
#3 0x328ff350 in -[NSPersistentStoreCoordinator executeRequest:withContext:error:] ()
#4 0x328fdf16 in -[NSManagedObjectContext executeFetchRequest:error:] ()
后台线程挂在我在调用[coordinator managedObjectIDForURIRepresentation:objector]之前放在持久性存储协调器上的锁上。
#0 0x3ad840fc in __psynch_mutexwait ()
#1 0x3accd128 in pthread_mutex_lock ()
#2 0x328eee90 in -[_PFLock lock] ()
#3 0x00093180 in -[DataManager getObjectByUri:context:]
我知道这很难从帖子调试,但任何想法都会非常感激。顺便说一句......这很少发生。