无法找到崩溃的原因 -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:] [英] Unable to find reason for Crash on -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:]
问题描述
在我的应用程序中,经常报告带有以下日志的许多崩溃,但即使使用多个测试设备和 iOS 版本,我也无法重现它.所以没有办法在 Xcode 上找到原因.因为跟踪中没有任何步骤导致我的代码,所以我无法想象有任何方法可以找到它的来源.应用程序本身非常复杂,当然也使用了许多嵌入的滚动视图.
In my app many crashes with the following log are reported very often, but even with several test devices and iOS versions I am not able to reproduce it. So there's no way to find the reason on Xcode. Because there's no step in the trace, that leads to my code, I cannot imagine any way to find the origin of it. The App itself is very complex and of course many Scroll Views, also embedded, are used.
有人知道从哪里开始寻找吗?或者以前有人遇到过类似的问题吗?
Has anyone an idea where to start looking? Or has anyone had a similar problem before?
非常感谢您的帮助!
最好的问候,弗洛里安
OS Version: iPhone OS 6.0.1 (10A523)
Report Version: 104
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0xd1d28fbc
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x392e65b0 objc_msgSend + 16
1 UIKit 0x35a839f7 -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:] + 135
2 UIKit 0x35a838e9 -[UIAnimator stopAnimation:] + 469
3 UIKit 0x35b1e257 -[UIAnimator(Static) _advanceAnimationsOfType:withTimestamp:] + 295
4 UIKit 0x35a83381 -[UIAnimator(Static) _LCDHeartbeatCallback:] + 53
5 QuartzCore 0x323d3071 CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long) + 161
6 QuartzCore 0x323d2fc9 CA::Display::IOMFBDisplayLink::callback(__IOMobileFramebuffer*, unsigned long long, unsigned long long, unsigned long long, void*) + 65
7 IOMobileFramebuffer 0x340befd7 IOMobileFramebufferVsyncNotifyFunc + 155
8 IOKit 0x35ee8449 IODispatchCalloutFromCFMessage + 193
9 CoreFoundation 0x339605db __CFMachPortPerform + 119
10 CoreFoundation 0x3396b173 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35
11 CoreFoundation 0x3396b117 __CFRunLoopDoSource1 + 139
12 CoreFoundation 0x33969f99 __CFRunLoopRun + 1385
13 CoreFoundation 0x338dcebd CFRunLoopRunSpecific + 357
14 CoreFoundation 0x338dcd49 CFRunLoopRunInMode + 105
15 GraphicsServices 0x33f222eb GSEventRunModal + 75
16 UIKit 0x3596a2f9 UIApplicationMain + 1121
17 0x00005233 main (main.m:14)
推荐答案
我也遇到了同样的崩溃.原来是因为我们正在使用 [controller setContentOffset:newPt animated:YES] 为控制器设置动画,并且我们在控制器上实现了 scrollViewDidScroll 委托方法.单击屏幕上的一个按钮可以让您前进到另一个控制器,因此如果用户在动画进行时设法单击该按钮,我们会遇到原始海报的崩溃.解决方法就是在 dealloc 中将 delegate 设置为 nil.
I had the same crash. It turned out to be because we were animating a controller with [controller setContentOffset:newPt animated:YES], and we implemented the scrollViewDidScroll delegate method on the controller. Clicking a button on the screen let you advance to another controller, so if a user managed to click the button while the animation was in progress, we would hit the original poster's crash. The solution is simply to set the delegate to nil in dealloc.
这篇关于无法找到崩溃的原因 -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!