我们在多线程上使用核心数据并且正在进行多线程监控。通常它很容易修复,查看违规的位置,并确保代码在performBlock调用中执行。
今天的问题是调用堆栈没有指向任何能给我很多线索的东西。我想有人可能会对如何跟踪这个问题有一些见解
#0 0x05e40f63 in +[NSManagedObjectContext __Multithreading_Violation_AllThatIsLeftToUsIsHonor__] ()
#1 0x05e4138b in _PFAssertSafeMultiThreadedAccess_impl ()
#2 0x05e0c15d in -[_PFBatchFaultingArray dealloc] ()
#3 0x05e0c1dd in -[_PFBatchFaultingArray release] ()
#4 0x07130eb1 in objc_release ()
#5 0x07131d32 in (anonymous namespace)::AutoreleasePoolPage::pop(void*) ()
#6 0x080d0536 in _dispatch_root_queue_drain ()
#7 0x080d1b70 in _dispatch_worker_thread3 ()
#8 0x0842d1da in _pthread_wqthread ()
#9 0x0842ae2e in start_wqthread ()
答案 0 :(得分:1)
我有同样的问题,只是注意到当我不批量获取数据时没有出现错误,即不在NSFetchRequest上设置fetchBatchSize。
这可能是PFBatchFaultingArray的iOS 8.3实现中的一个错误。