cocoa - Core Data 内部方法崩溃 (SIGSEGV)

标签 cocoa core-data crash crash-dumps segmentation-fault

我收到了崩溃报告,崩溃线程的调用堆栈都显示了 Apple 的代码。从表面上看,Core Data 的撤消管理器正在访问 -[NSManagedObject(_NSInternalMethods) _newSnapshotForUndo__] + 356 中的无效指针。我用谷歌搜索了崩溃点,我发现的唯一其他类似的崩溃日志来自 Sequel Pro crash log .

这是我正在查看的特定崩溃日志。我有希望解决这个问题吗?如何?我无法复制该问题。

Code Type: X86-64 (Native)
Parent Process: launchd [184]

Date/Time: 2010-07-16 18:23:38.505 -0800
OS Version: Mac OS X 10.6.4 (10F569)
Report Version: 6

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Application Specific Information:
objc[27141]: garbage collection is ON

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.CoreData 0x00007fff8602a7c4 -[NSManagedObject(_NSInternalMethods) _newSnapshotForUndo__] + 356
1 com.apple.CoreData 0x00007fff8602a3da -    [NSManagedObjectContext(_NSInternalChangeProcessing) _registerUndoForOperation:withObjects:withExtraArguments:] + 218
2 com.apple.CoreData 0x00007fff8602a2f2 -[NSManagedObjectContext(_NSInternalChangeProcessing) _registerUndoForModifiedObjects:] + 34
3 com.apple.CoreData 0x00007fff85ff9933 -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 1155
4 com.apple.CoreData 0x00007fff86035e72 -[NSManagedObjectContext processPendingChanges] + 18
5 com.apple.CoreData 0x00007fff8604ca1c -    [NSManagedObjectContext(_NSInternalNotificationHandling) _processEndOfEventNotification:] + 108
6 com.apple.CoreData 0x00007fff86029c6e -[NSManagedObjectContext(_NSInternalChangeProcessing) _undoManagerCheckpoint:] + 30
7 com.apple.Foundation 0x00007fff8460784e _nsnote_callback + 167
8 com.apple.CoreFoundation 0x00007fff842d0a90 __CFXNotificationPost + 1008
9 com.apple.CoreFoundation 0x00007fff842bd008 _CFXNotificationPostNotification + 200
10 com.apple.Foundation 0x00007fff845fe7b8 -[NSNotificationCenter postNotificationName:object:userInfo:] + 101
11 com.apple.Foundation 0x00007fff8466f557 -[NSUndoManager _postCheckpointNotification] + 74
12 com.apple.Foundation 0x00007fff8466f3b9 -[NSUndoManager _endUndoGroupRemovingIfEmpty:] + 86
13 com.apple.Foundation 0x00007fff8461ea71 +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 455
14 com.apple.AppKit 0x00007fff82819945 -[NSApplication run] + 509
15 com.apple.AppKit 0x00007fff828125f8 NSApplicationMain + 364

提前致谢。

最佳答案

我终于找到了解决这个问题的办法——简单地说don't use NSManagedObjectContext in a background thread that saves 。我已经改变了方法,只依赖主线程进行核心数据操作,并且它有效。

对于一些背景信息,此代码是 News Anchor for Mac OS X 刷新周期的一部分。 ,一个可以大声朗读的 RSS 阅读器。该周期的目的是从 Internet 加载 RSS 源并根据源文章创建新闻 channel 剧集。

关于cocoa - Core Data 内部方法崩溃 (SIGSEGV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292758/

相关文章:

ios - swift 核心数据 : Inserting instances of an Entity related to other 2 entities

python - 词云:代码未显示任何错误,但显示wordcloud会引发名称错误

android - API 19发生 Activity 崩溃

android - 我可以开始多少级 Activity/fragment ?

cocoa - 是否有 API 可以在 GTK 和 OSX 上进行每像素 Alpha 混合?

objective-c - 如何在 Cocoa 中获取 JPEG 图像的压缩系数?

iphone - 开发 iPod 需要哪些软件和硬件?在电脑上?

ios - NSPredicate for NSString中的问题

objective-c - 在 objective-c 中触摸一个文件

iphone - 重新排序控件未显示在 TableView 中