我一直在我的應用程序中使用下面的代碼來渲染出一個自定義UIView圖像。該代碼在模擬器(iPad和iPad視網膜)以及iPad 1和iPad 2設備上效果很好。不過,我最近在iPad 3設備上測試過它,並且正在發生一次我無法解決的崩潰。相關的代碼片段是:iPad 3設備崩潰renderInContext
UIGraphicsBeginImageContext(CGSizeMake(myUIView.frame.size.width, myUIView.frame.size.height));
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
[myUIView.layer renderInContext:context];
應用程序在最後一行崩潰。以下是崩潰日誌:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x12311000
Crashed Thread: 5
而且從後來的日誌中:
Thread 5 name: Dispatch queue: com.apple.root.default-overcommit-priority
Thread 5 Crashed:
0 ImageIO 0x3384bcb4 ImageIO_ABGR_TO_ARGB_8Bit + 68
1 ImageIO 0x3388761c __copyImageBlockSetPNG_block_invoke_1 + 608
2 libdispatch.dylib 0x348c0c52 _dispatch_call_block_and_release + 6
3 libdispatch.dylib 0x348c3810 _dispatch_worker_thread2 + 252
4 libsystem_c.dylib 0x33145df4 _pthread_wqthread + 288
5 libsystem_c.dylib 0x33145cc8 start_wqthread + 0
我首先認爲這是一個內存管理錯誤,但是這僅僅是iPad 3的設備和我正在使用ARC。這讓我難住。
任何我可能想要進一步解決問題的建議?有沒有其他人遇到過這種行爲?
在此先感謝!
嗨,你有沒有找到解決方案,即時通訊也有同樣的問題?如果是這樣請分享解決方案 – Infaz