找不到-[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:]崩溃的原因。

14

我的应用程序经常报告以下日志导致的崩溃,但是即使使用多个测试设备和iOS版本,我也无法重现它。因此,在Xcode上找不到原因。由于跟踪中没有任何步骤导致我的代码,我无法想象任何方法来查找其来源。该应用程序本身非常复杂,当然使用了许多滚动视图,包括嵌入式滚动视图。

有人有任何想法从哪里开始查找?或者以前有人遇到过类似的问题吗?

非常感谢任何帮助!

最好的问候, 弗洛里安

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)
3个回答

17

我也遇到了同样的崩溃问题。原因是我们正在使用[controller setContentOffset:newPt animated:YES]动画控制器,并在控制器上实现了scrollViewDidScroll代理方法。屏幕上的一个按钮可以让您跳转到另一个控制器,因此,如果用户在动画进行时成功单击该按钮,则会引发原始海报的崩溃。解决方案很简单,在dealloc中将委托设置为nil即可。


2

SIGSEGV信号会在进程进行无效的虚拟内存引用或分段错误时发送给该进程。(请见维基百科

因此,您正在访问一个可能已被释放的对象。由于这是在动画期间发生的,也许您定义了一个选择器在动画完成后被调用,或类似的东西?我会从那里开始查找。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接