gpt4 book ai didi

cocoa - NSManagedObjectContext processPendingChanges 期间核心数据崩溃

转载 作者:行者123 更新时间:2023-12-03 16:15:11 26 4
gpt4 key购买 nike

我遇到了 Core Data 崩溃(在我看来很奇怪)。据我所知,当 Core Data 进行保存并触发后续的 ManagedObjectContextDidSave 方法时,就会发生这种情况。

我很茫然,真的希望有人能帮助我或引导我走向正确的方向。

崩溃报告如下:

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000b
Crashed Thread: 0

Thread 0 Crashed:
0 libobjc.A.dylib 0x000026f4 objc_msgSend + 16
1 Foundation 0x000437a4 NSClassFromObject + 8
2 Foundation 0x0000ba54 _NSIMPForObjectAndSelector + 4
3 Foundation 0x00095eae -[NSSortDescriptor compareObject:toObject:] + 110
4 CoreData 0x000b0a6e +[NSFetchedResultsController(PrivateMethods) _insertIndexForObject:inArray:lowIdx:highIdx:sortDescriptors:] + 174
5 CoreData 0x000b1496 -[NSFetchedResultsController(PrivateMethods) _postprocessInsertedObjects:] + 342
6 CoreData 0x000b32d6 -[NSFetchedResultsController(PrivateMethods) _postprocessUpdatedObjects:] + 430
7 CoreData 0x000b2a5e -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:] + 498
8 Foundation 0x0004bbf6 _nsnote_callback + 162
9 CoreFoundation 0x00050af2 _CFXNotificationPostNotification + 298
10 Foundation 0x000497f4 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
11 CoreData 0x0002e42e -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] + 66
12 CoreData 0x0007fd26 -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] + 134
13 CoreData 0x0001670a -[NSManagedObjectContext(_NSInternalChangeProcessing) _postRefreshedObjectsNotificationAndClearList] + 70
14 CoreData 0x000164ac -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 1656
15 CoreData 0x0004b5fa -[NSManagedObjectContext processPendingChanges] + 10
16 CoreData 0x0003e2a4 _performRunLoopAction + 120
17 CoreFoundation 0x0000fb50 __CFRunLoopDoObservers + 420
18 CoreFoundation 0x00056a32 CFRunLoopRunSpecific + 1734
19 CoreFoundation 0x00056356 CFRunLoopRunInMode + 42
20 GraphicsServices 0x00003cb8 GSEventRunModal + 108
21 GraphicsServices 0x00003d64 GSEventRun + 56
22 UIKit 0x00002768 -[UIApplication _run] + 384
23 UIKit 0x0000146c UIApplicationMain + 688
24 MyApp 0x000022d2 main (main.m:14)
25 MyApp 0x00002248 start + 44

最佳答案

看起来数据库数组之一中的一项被释放了太多次(因此被释放)。尝试对数组进行排序、与已释放的对象进行比较时会崩溃。

尝试使用 NSZombieEnabled 运行您的程序-- 它可以防止释放,因此您可以看到哪个对象正在接收发送给它的保留计数为 0 的消息。

关于cocoa - NSManagedObjectContext processPendingChanges 期间核心数据崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2189619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com