Xcodeから実行するとCGContextDrawPDFPageでエラーが発生する
iOSアプリでPDFファイルの各ページをUIImageに変換する処理を作成しています。
iOS7まででは下記に示すコードで正常にPDFのページを取得・変換できているのですが、
iOS8.1で実行したところCGContextDrawPDFPageの段階で原因不明のエラーとなってしまいます。
以下が主なコードになります。
NSURL *url = [NSURL fileURLWithPath:pdfPath];
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((__bridge CFURLRef)url);
CGPDFPageRef pageRef = CGPDFDocumentGetPage(pdf, 1);
CGPDFPageRetain(pageRef);
CGRect pageRect = CGPDFPageGetBoxRect(pageRef, kCGPDFMediaBox);
UIGraphicsBeginImageContext(pageRect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);
CGContextFillRect(context, pageRect);
CGContextTranslateCTM(context, 0.0, pageRect.size.height);
CGContextScaleCTM(context, 1.0f, -1.0f);
CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
CGContextSetRenderingIntent(context, kCGRenderingIntentDefault);
CGContextDrawPDFPage(context, pageRef);
CGContextRestoreGState(context);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGPDFPageRelease(pageRef);
CGPDFDocumentRelease(pdf);
iOS8からCoreGraphicsでPDFの扱い方に変更があったのでしょうか?
もしよろしければ原因やヒントとなる情報をお持ちの方がいましたらご教示いただければ幸いです。
なお、iOS8でも、Xcodeから実行した際にはエラーとなるものの、
ArchiveしてOTAで実機にインストールするとエラーが発生せず正常にPDFの取得・変換ができております。
つまり、
・iOS8以上
・Xcodeから実行
・一部のPDFでのみエラーとなる
という条件でエラーが発生しております。
Xcodeから実行した際と実機単体で実行した際で差分が発生する現象について、
何か知見をお持ちの方がおりましたら、
本現象と直接の関係がないことでも結構ですのでご教示いただけませんでしょうか?