首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSImage _cacheSnapShotRep崩溃

NSImage _cacheSnapShotRep崩溃
EN

Stack Overflow用户
提问于 2010-01-13 07:31:06
回答 2查看 264关注 0票数 1

我使用NSOperation子类创建图像;生成的线程用于创建在imageView中显示的图像。图像被设置为arraycontroller中的一个key,绑定到imageview。

用户随机报告应用程序崩溃,崩溃日志显示调用选择器_cacheSnapshotRep()的线程中出现错误;我自己无法重现此错误,在web搜索中也没有出现此错误。

以下是崩溃日志中的相关部分:

代码语言:javascript
复制
Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
Crashed Thread:  5  Dispatch queue: com.apple.root.default-priority

Application Specific Information:
objc_msgSend() selector name: _cacheSnapshotRep:

和:

代码语言:javascript
复制
Thread 5 Crashed:  Dispatch queue: com.apple.root.default-priority
0   libobjc.A.dylib                 0x90008edb objc_msgSend + 27
1   com.apple.AppKit                0x962abd48 -[NSImage _usingBestRepresentationForRect:context:hints:body:] + 189
2   com.apple.AppKit                0x962ab87e -[NSImage drawInRect:fromRect:operation:fraction:respectFlipped:hints:] + 1939
3   com.apple.AppKit                0x962aa6a0 -[NSImage _drawMappingAlignmentRectToRect:withState:backgroundStyle:operation:fraction:flip:hints:] + 842
4   com.apple.AppKit                0x963bfb95 -[NSImageCell drawInteriorWithFrame:inView:] + 821
5   com.apple.AppKit                0x963bf7f9 -[NSImageCell drawWithFrame:inView:] + 2133
6   com.apple.AppKit                0x9635066a -[NSControl drawRect:] + 589
7   com.apple.AppKit                0x96348a99 -[NSView _drawRect:clip:] + 3510
8   com.apple.AppKit                0x969ae107 -[_NSViewDrawOperation main] + 257
9   com.apple.Foundation            0x9279c33b -[__NSOperationInternal start] + 811
10  com.apple.Foundation            0x9279bf61 ____startOperations_block_invoke_2 + 94
11  libSystem.B.dylib               0x922ac828 _dispatch_call_block_and_release + 16
12  libSystem.B.dylib               0x9229ea5c _dispatch_worker_thread2 + 222
13  libSystem.B.dylib               0x9229e4f1 _pthread_wqthread + 390
14  libSystem.B.dylib               0x9229e336 start_wqthread + 30

我有点迷茫,不知道接下来该怎么做,所以任何建议都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-18 11:16:46

所以它看起来像是因为在我的子线程中使用了非线程安全类而导致的。

Apple's documentation很好地总结了线程安全规则。

票数 0
EN

Stack Overflow用户

发布于 2010-01-13 07:42:19

代码语言:javascript
复制
Exception Type:  EXC_BAD_ACCESS (SIGBUS)

在我看来,这是一个内存管理问题,NSZombieEnabledInstruments应该可以帮助您找出错误所在,特别是如果您无法自己重现错误的话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2053260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档