小动物主义报道的坠毁事件大约有10多次。
姓名:SIGSEGV
原因:SEGV_MAPERR
似乎是UIScrollView / UITableView动画或滚动问题。
如何找到根本原因?
堆栈:
0
libobjc.A.dylib 0x0000000195fafbd0 objc_msgSend + 12
1
UIKit 0x00000001892b1db8 -[UIScrollView(UIScrollViewInternal) _delegateScrollViewAnimationEnded] + 64
2
UIKit 0x00000001892b1d30 -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:] + 204
3
UIKit 0x0000000189366814 -[UIAnimator stopAnimation:] + 500
4
UIKit 0x0000000189366248 -[UIAnimator(Static) _advanceAnimationsOfType:withTimestamp:] + 332
5
QuartzCore 0x0000000188b4629c CA::Display::DisplayLinkItem::dispatch() + 28
6
QuartzCore 0x0000000188b46134 CA::Display::DisplayLink::dispatch_items() + 320
7
IOKit 0x0000000185921470 IODispatchCalloutFromCFMessage + 372
8
CoreFoundation 0x0000000184712dc4 __CFMachPortPerform + 176
9
CoreFoundation 0x0000000184727a54 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
10
CoreFoundation 0x00000001847279b4 __CFRunLoopDoSource1 + 432
11
CoreFoundation 0x0000000184725934 __CFRunLoopRun + 1636
12
CoreFoundation 0x00000001846512d4 CFRunLoopRunSpecific + 392
13
GraphicsServices 0x000000018de676fc GSEventRunModal + 164
14
UIKit 0x0000000189216fac UIApplicationMain + 1484
15
MyApp 0x000000010001d280 main (main.m:14)
16
libdyld.dylib 0x000000019661aa08 start + 0
最佳答案
我已经看到了在动画过程中释放 Controller 和/或其表时发生的情况。操作系统在完成动画时仍会触发委托(delegate)方法(例如-scrollViewDidEndScrollingAnimation:
或-scrollViewDidEndDecelerating:
),但是由于对象不再存在,所以事情变得很奇怪。
最好的解决方法是在 Controller 的dealloc
方法中使委托(delegate)无效。
关于ios - iOS中发生奇怪的SIGSEGV崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31468129/