无法find崩溃的原因 –

在我的应用程序中很多时候会报告以下日志的崩溃,但是即使有几个testing设备和iOS版本,我也无法重现它。 所以没有办法在Xcode上find原因。 因为跟踪中没有步骤,导致我的代码,我无法想象任何方法来find它的起源。 该应用程序本身是非常复杂的,当然也使用了许多滚动视图,也embedded。

有没有人有一个想法在哪里开始寻找? 还是有人有过类似的问题?

我非常感谢任何帮助!

最好的问候,弗洛里安

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]来animation控制器,我们在控制器上实现了scrollViewDidScroll委托方法。 点击屏幕上的一个button可以让你前进到另一个控制器,所以如果用户在animation进行过程中设法点击button,我们会触发原始海报的崩溃。 解决方法是简单地将委托设置为dealloc中的零。

SIGSEGV信号产生无效的虚拟内存引用或分段错误时,会将其发送到进程。 (请参阅维基百科 )

所以你正在访问一个可能已经被释放的对象。 由于这是一个animation过程中,也许你定义了一个select器,animation完成后调用或类似的东西呢? 那将是我会开始寻找。

你可能想看看这个线程: 有没有办法取消animation的UITableView / UIScrollView setContentOffset:animated:?

这个讨论表明它可能是一个委托,在滚动视图发送animation结束消息之前被释放。