[DEBUG]异常退出-CALayer

    xiaoxiao2025-07-30  11

    项目中使用的MRProgressHUD在特定场景下,会不定时地异常退出:

    Last Exception Backtrace: 0 CoreFoundation 0x223b7916 __exceptionPreprocess + 122 1 libobjc.A.dylib 0x21b52e12 objc_exception_throw + 34 2 CoreFoundation 0x223b785c +[NSException raise:format:] + 108 3 QuartzCore 0x24a124c6 -[CALayer _renderSublayersInContext:] + 418 4 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 5 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 6 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 7 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 8 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 9 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 10 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 11 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 12 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 13 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 14 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 15 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 16 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 17 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 18 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 19 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 20 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 21 QuartzCore 0x24a1247c -[CALayer _renderSublayersInContext:] + 344 22 QuartzCore 0x24a11156 -[CALayer renderInContext:] + 1002 23 XXXX 0x00a10f48 -[MRBlurView snapshot] (MRBlurView.m:185) 24 XXXX 0x00a10754 -[MRBlurView redraw] (MRBlurView.m:122) 25 libdispatch.dylib 0x21f2581e _dispatch_call_block_and_release + 6 26 libdispatch.dylib 0x21f3150a _dispatch_after_timer_callback$VARIANT$mp + 62 27 libdispatch.dylib 0x21f2580a _dispatch_client_callout + 18 28 libdispatch.dylib 0x21f3ddae _dispatch_source_latch_and_call + 2026 29 libdispatch.dylib 0x21f38d14 _dispatch_source_invoke$VARIANT$mp + 708 30 libdispatch.dylib 0x21f3373a _dispatch_main_queue_callback_4CF$VARIANT$mp + 390 31 CoreFoundation 0x22379b68 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4 32 CoreFoundation 0x22378062 __CFRunLoopRun + 1570 33 CoreFoundation 0x222c7224 CFRunLoopRunSpecific + 516 34 CoreFoundation 0x222c7010 CFRunLoopRunInMode + 104 35 GraphicsServices 0x238b7ac4 GSEventRunModal + 156 36 UIKit 0x2699b184 UIApplicationMain + 140 37 XXXX 0x001e6fb6 main (main.m:17) 38 libdyld.dylib 0x21f6f86e tlv_get_addr + 42 经排查,是因为在其截取底层视图截图时,出现问题。底层视图中某一view的frame设置不对,其rect包含inf,导致出现crash。

    解决办法:

    在项目中,底层包含一个uiscrollview, 设置断点,调用[scrollview recursiveDescription]查看视图层次结构,找到frame包含inf的视图,纠正该视图frame即可。

    转载请注明原文地址: https://ju.6miu.com/read-1301233.html
    最新回复(0)