试图修复崩溃:QuartzCore - CA :: release_objects(X :: List <void const*>*)

Jon*_*Jon 7 crash ios ios8.1

我们的应用程序遇到了几次崩溃,想知道您是否有任何见解或有过类似的经历.我已经分享了下面的崩溃日志信息.

运行iOS 8.1.我们已经通过仪器,静态分析仪运行它,并且仍在努力指出问题.

QuartzCore
CA::release_objects(X::List<void const*>*)

13
Crashed: Thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0042de0f48aa7488


Thread : Crashed: Thread
0  libobjc.A.dylib                0x0000000193debbdc objc_msgSend + 28
1  CoreFoundation                 0x0000000183561228 CFRelease + 524
2  QuartzCore                     0x0000000187788644 CA::release_objects(X::List<void const*>*) +         32
3  QuartzCore                     0x000000018778e498 -[CAAnimation dealloc] + 80
4  libobjc.A.dylib                0x0000000193df1724 (anonymous    namespace)::AutoreleasePoolPage::pop(void*) + 564
5  libobjc.A.dylib                0x0000000193df2754 (anonymous namespace)::AutoreleasePoolPage::tls_dealloc(void*) + 72
6  libsystem_pthread.dylib        0x00000001945fa3e0 _pthread_tsd_cleanup + 200
7  libsystem_pthread.dylib        0x00000001945fa0ac _pthread_exit + 140
8  libsystem_pthread.dylib        0x00000001945fb330 pthread_exit + 44
9  Foundation                     0x0000000184487000 -[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:]
10 Foundation                     0x0000000184555c24 __NSThread__main__ + 1096
11 libsystem_pthread.dylib        0x00000001945fbe80 _pthread_body + 164
12 libsystem_pthread.dylib        0x00000001945fbddc _pthread_body
Run Code Online (Sandbox Code Playgroud)

Fai*_*mon 0

这里的问题是,您正在对一个 Core Animation 没有预料到的对象进行一次额外的释放,因此问题出现在您的代码中,但在动画框架执行清理阶段时暴露出来。

要解决此问题,请使用分析。选择“分配分析器”,然后单击“堆分配的启动配置”下的“记录引用计数”。

然后,当遇到问题时,您将能够看到分配历史记录,并且一个版本不会配对,而是从您的源代码文件之一发布。