アプリケーションで次のコードを使用して、カスタム UIView を画像にレンダリングしています。このコードは、シミュレーター (iPad および iPad Retina) だけでなく、iPad 1 および iPad 2 デバイスでもうまく機能します。しかし、最近 iPad 3 デバイスでテストしたところ、クラッシュが発生し、解決できないようです。関連するコード スニペットは次のとおりです。
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 を使用しています。これは私を困惑させました。
これをさらにトラブルシューティングするためにどこを見ることができるかについての提案はありますか? 他の誰かがこの種の行動に遭遇しましたか?
前もって感謝します!