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)
4

3 回答 3

17

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

于 2013-07-08T21:55:06.460 回答
2

你可能想看看这个线程:Is there a way to cancel an animated UITableView/UIScrollView setContentOffset:animated:?

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

于 2013-01-12T14:13:31.007 回答
2

The SIGSEGV signal is sent to a process when it makes an invalid virtual memory reference, or segmentation fault. (see Wikipedia)

So you are accessing an object that likely has been released. As this is an during an animation, maybe you defined a selector to be invoked after the animation finished or something like that? That would be were I would starting looking.

于 2013-01-12T14:10:53.070 回答