コアデータのプライベート/内部メソッドでランダムに発生するまれなクラッシュがあります。コアデータクラッシュ中にmergeChangesFromContextDidSaveNotification
マイセットアップ:
- 2 NSPSC:mainPSCとimportPSC
- がimportPSCに添付MOCは バックグラウンドで実行され、
- 別の目的は、 DidSaveNotificationに耳を傾け、その後mainMOC とimporterMOCを(マージを保存実行メインPSCに添付)
これはすべてiOS 9.3です。 これは(それは私のライブラリーRTCoreDataStackからだ)メインスレッドで実行されるコードです:
[self.mainManagedObjectContext performBlock:^{
[self.mainManagedObjectContext mergeChangesFromContextDidSaveNotification:notification];
}];
私はクラッシュレポート内のさまざまなコード(デバイス上のシミュレータやSIGSEGVのEXC_I386_GPFLT)とEXC_BAD_ACCESSを取得します。ここでは一例だ:
Thread 0 Crashed:
0 libobjc.A.dylib 0x0000000180eedb90 objc_msgSend + 16
1 CoreData 0x0000000183773010 -[NSManagedObjectContext _mergeRefreshObject:mergeChanges:withPersistentSnapshot:] + 132
2 CoreData 0x00000001837745fc -[NSManagedObjectContext _mergeChangesFromDidSaveDictionary:usingObjectIDs:] + 2276
3 CoreData 0x000000018377cd04 __90+[NSManagedObjectContext(_NSCoreDataSPI) _mergeChangesFromRemoteContextSave:intoContexts:]_block_invoke1353 + 68
4 CoreData 0x000000018377508c developerSubmittedBlockToNSManagedObjectContextPerform + 192
5 CoreData 0x0000000183774f54 -[NSManagedObjectContext performBlockAndWait:] + 216
6 CoreData 0x000000018377c698 +[NSManagedObjectContext(_NSCoreDataSPI) _mergeChangesFromRemoteContextSave:intoContexts:] + 3420
7 CoreData 0x0000000183774bb0 -[NSManagedObjectContext mergeChangesFromContextDidSaveNotification:] + 384
8 RTCoreDataStack 0x00000001005e8d34 __43-[RTCoreDataManager handleMOCNotification:]_block_invoke (RTCoreDataManager.m:294)
9 CoreData 0x000000018377508c developerSubmittedBlockToNSManagedObjectContextPerform + 192
10 libdispatch.dylib 0x00000001812c147c _dispatch_client_callout + 12
11 libdispatch.dylib 0x00000001812c6b84 _dispatch_main_queue_callback_4CF + 1840
12 CoreFoundation 0x000000018182cd50 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
13 CoreFoundation 0x000000018182abb8 __CFRunLoopRun + 1624
14 CoreFoundation 0x0000000181754c50 CFRunLoopRunSpecific + 380
15 GraphicsServices 0x000000018303c088 GSEventRunModal + 176
16 UIKit 0x0000000186a3e088 UIApplicationMain + 200
17 MyApp 0x0000000100131910 main (main.m:14)
18 ??? 0x00000001812f28b8 0x0 + 0