objective-c - 如何解决KERN_PROTECTION_FAILURE和KERN_INVALID_ADDRESS?

标签 objective-c ios ipad

如何解决 KERN_PROTECTION_FAILURE 和 KERN_INVALID ADDRESS? 当我运行我的应用程序时,两者似乎都发生在完全相同的位置。

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x6d783f44
Crashed Thread:  2

Thread 2 Crashed:
0   libobjc.A.dylib                 0x34a80464 objc_msgSend + 16
1   Foundation                      0x31171dda __+[__NSOperationInternal _observeValueForKeyPath:ofObject:changeKind:oldValue:newValue:indexes:context:]_block_invoke_7 + 10
2   libSystem.B.dylib               0x30dd9678 _dispatch_call_block_and_release + 12
3   libSystem.B.dylib               0x30dd9b98 _dispatch_worker_thread2 + 120
4   libSystem.B.dylib               0x30d7e24a _pthread_wqthread + 258
5   libSystem.B.dylib               0x30d76970 start_wqthread + 0

和:

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

Thread 7 Crashed:
0   libobjc.A.dylib                 0x34a80464 objc_msgSend + 16
1   Foundation                      0x31171dfc -[NSOperation completionBlock] + 16
2   Foundation                      0x31171dda __+[__NSOperationInternal _observeValueForKeyPath:ofObject:changeKind:oldValue:newValue:indexes:context:]_block_invoke_7 + 10
3   libSystem.B.dylib               0x30dd9678 _dispatch_call_block_and_release + 12
4   libSystem.B.dylib               0x30dd9b98 _dispatch_worker_thread2 + 120
5   libSystem.B.dylib               0x30d7e24a _pthread_wqthread + 258
6   libSystem.B.dylib               0x30d76970 start_wqthread + 0

奇怪的是,它在 iPad 1 (iOS 4.2.1) 上崩溃,但在 iPad 2 (iOS 4.3.2) 上却没有。 这可能是 iPad 本身的问题还是内存的问题?或者它真的是我代码中的错误?如果是这样,为什么我不能在 iPad 2 上重现它?

最佳答案

EXC_BAD_ACCESS 错误通常是由于尝试将消息发送到已被释放的对象。在这种情况下,它似乎是您的 NSOperation 中已经发布的内容。这几乎可以肯定是您代码中的错误。至于为什么它发生在一台 iPad 而不是另一台,可能是在一台设备上用于包含您的对象的内存已被重复使用,但在另一台设备上它仍然有您的对象的僵尸。

更详尽的解释是 here .

关于objective-c - 如何解决KERN_PROTECTION_FAILURE和KERN_INVALID_ADDRESS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6292903/

相关文章:

iphone - Xcode 5 中的代码签名问题

iOS DoubleClick for Publishers (DFP) .. 错误 : No ad to show

iOS 创建 PDF 发票

ios - 为单个视频添加多个滤镜

iphone - subview 外的 UIButton 可点击区域

ios - 我怎样才能普遍禁用横向?

ios - 手机旋转360度时,自动布局无法正确运行

ios - 具有行展开和折叠选项的 TableView 的最佳方法

ios - UIActivityViewController 在 iOS7 中显示透明

iphone - 在Ipad中通过XML解析生成动态控件