objective-c - QuartzCore - 在 iOS8 中崩溃

标签 objective-c iphone crash ios8

发布新版本的 iOS 应用程序后,我经常遇到以下崩溃。

崩溃:WebThread EXC_BAD_ACCESS KERN_INVALID_ADDRESS 位于 0x80000012

这是令人恼火的崩溃之一,其中堆栈跟踪没有提供任何与崩溃位置或导致崩溃的原因相关的线索。一件大事是这种崩溃仅在 iOS8 中存在。请在堆栈跟踪下方找到:

0 libobjc.A.dylib        objc_msgSend + 5 release
1 CoreFoundation         CFRelease + 600
2 QuartzCore             CA::release_objects(X::List<void const*>*) + 16
3 QuartzCore             -[CAAnimation dealloc] + 54
4 libobjc.A.dylib        objc_object::sidetable_release(bool) + 166
5 libobjc.A.dylib        (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 404
6 CoreFoundation         _CFAutoreleasePoolPop + 16
7 Foundation             -[NSAutoreleasePool drain] + 122
8 CFNetwork              AutoAutoreleasePool::~AutoAutoreleasePool() + 24
9 CFNetwork              ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 166
10 CFNetwork             RunloopBlockContext::_invoke_block(void const*, void*) + 60
11 CoreFoundation        CFArrayApplyFunction + 36
12 CFNetwork             RunloopBlockContext::perform() + 182
13 CFNetwork             MultiplexerSource::perform() + 216
14 CFNetwork             MultiplexerSource::_perform(void*) + 48

任何提示将不胜感激。提前致谢。

最佳答案

大多数情况下,EXC_BAD_ACCESS 是向已释放的对象发送消息的结果。虽然这在 ARC 下比以前更难做到,但仍有可能。

KERN_INVALID_ADDRESS 部分只是告诉您您尝试访问的内存不属于您应用的内存空间,这证实了已释放对象句柄假设。

要调试以前发布的对象(称为“僵尸”对象),请在调试器中打开 NSZombies。在 XCode 7 中...

  • CMD-SHIFT- 调出管理方案。
  • 选择您的方案
  • 选择诊断
  • 检查启用僵尸对象

注意:您只想在调试版本上执行此操作,因为僵尸对象会占用大量内存并损害整体性能。尽管如此,它仍然是一个出色的调试工具。

关于objective-c - QuartzCore - 在 iOS8 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27597649/

相关文章:

android - Android Studio:启动倒数计时器时应用崩溃

ios - 是否可以在“设置”->“iCloud”->“文档和数据”中拦截 iCloud 打开/关闭?

iphone - 如何删除UITableView中最后一个单元格的最后一个边框?

iphone - 在 iPhone 上传输音频时是否可以减少背景噪音?

iphone - 触发 addSubview 方法

iphone - 带有底部填充的 UITextView

ipad - 我的纹理密集型游戏应用程序对iPad1的内存之谜

iOS 13 : @objc VC. navigationController(_:willShow:animated:):线程违规:预期主线程

ios - Swift 闭包作为字典中的值

Objective-c 从星期一开始获取星期几,而不是星期日