【问题标题】:Unable to find reason for Crash on -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:]无法找到崩溃的原因 - [UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:]
【发布时间】:2012-12-26 22:53:25
【问题描述】:

在我的应用程序中,经常报告带有以下日志的许多崩溃,但即使使用多个测试设备和 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)

【问题讨论】:

    标签: ios crash scrollview


    【解决方案1】:

    我遇到了同样的崩溃。原来是因为我们使用 [controller setContentOffset:newPt animated:YES] 为控制器设置动画,并且我们在控制器上实现了 scrollViewDidScroll 委托方法。单击屏幕上的一个按钮可以让您前进到另一个控制器,因此如果用户在动画进行时设法单击该按钮,我们会遇到原始海报的崩溃。解决方法就是在 dealloc 中将 delegate 设置为 nil。

    【讨论】:

      【解决方案2】:

      SIGSEGV 信号在进程进行无效虚拟内存引用或分段错误时发送到该进程。 (见Wikipedia

      所以你正在访问一个可能已经被释放的对象。由于这是在动画期间,也许您定义了在动画完成后调用的选择器或类似的东西?那是我开始寻找的时候。

      【讨论】:

        【解决方案3】:

        您可能想看看这个帖子:Is there a way to cancel an animated UITableView/UIScrollView setContentOffset:animated:?

        该讨论表明它可能是在滚动视图发送动画结束消息之前被释放的委托。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-12-15
          • 1970-01-01
          • 1970-01-01
          • 2014-11-13
          • 2016-01-05
          • 1970-01-01
          • 1970-01-01
          • 2012-03-04
          相关资源
          最近更新 更多