objective-c – 如何解决KERN_PROTECTION_FAILURE和KERN_INVALID
发布时间:2020-12-16 06:02:10 所属栏目:百科 来源:网络整理
导读:您如何解决KERN_PROTECTION_FAILURE和KERN_INVALID ADDRESS? 当我运行我的应用程序时,两者似乎都发生在完全相同的位置. Exception Type: EXC_BAD_ACCESS (SIGSEGV)Exception Codes: KERN_INVALID_ADDRESS at 0x6d783f44Crashed Thread: 2Thread 2 Crashed:0
您如何解决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)上. 解决方法
EXC_BAD_ACCESS错误通常是尝试向已被释放的对象发送消息.在这种情况下,您的NSOperation似乎已经发布了.这几乎肯定是您的代码中的错误.至于为什么它发生在一个iPad而不是另一个iPad上,可能是在一个设备上,用于包含对象的内存已被重复使用,但另一方面仍然有一个僵尸的对象.
一个更彻底的解释是here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |