1


基本的にPDFリーダーであるいくつかのアプリに取り組んでいます。iOS 6 以降、メモリ不足が原因でアプリがクラッシュし始めました。当社のアプリはPDF Readerを利用していますが、問題はありません。これまでのところ、次のことがわかりました。
1. リークの原因 2. CGContextDrawPDFPage
iOS 6 未満では存在しない (またはそれほど目立たない)
3. 圧縮なしまたは小さな圧縮の PDFS ではリークは発生しない

具体的には、圧縮されたPDFを開いた後、メモリが使用されます。PDF を閉じると、そのメモリの一部が解放されます。ただし、すべてではありません。PDFを数回開いたり閉じたりするだけで、簡単にメモリ警告が表示され、アプリがクラッシュする可能性があります。PSPDF
も試してみましたが、PDF Readerよりも利点(速度)がありますが、はるかに高価で、同じリークがそこにあります。

PDF ReaderPSPDF Kitの非常に単純なテスト プロジェクトを作成しました。(プロジェクトにPDFを追加するだけです)

iOS 6 でのリークを修正するためにできることはありますか、それとも何か間違ったことをしているのに、実際にはリークはありませんか? 私の現在のアプローチは、公式の修正を待つことです。
この問題がここで大きく議論されたことは知っていますが、私の状況は少し異なると思います。(ARC とテスト済みのライブラリを使用し、シミュレーターとデバイスでリークが表示されます)

ありがとうございました。

4

1 に答える 1

0

何度も試した結果、2つの解決策しか見つかりませんでした。しかし、どれも完璧ではありません。

1)AppleのQuickLookフレームワーク
を使用する-iOS <6.0ではリークしていません
-iOS6.0ではリークしていません。

QuickLookは、XPCを使用して別のプロセスで実行されます。ただし、これは実質的にカスタマイズがないことも意味します。(リンクされたブログ投稿でこの質問を参照してください)

2)FastPdfKitライブラリ
を使用する関与 していないCGContextDrawPDFPageか、またはいくつかの巧妙な最適化が行われているようですが、FastPdfKitはリークしていません。短所は2つあります。ライブラリは商用であり、ライセンスを購入した後でもそのレンダリングエンジンは表示されません。すべての機能を備えた無料バージョンを使用できますが、スプラッシュ画面があります。

時間のプレッシャーにさらされており、公式のバグ修正を待つ余裕も、現在の機能を除外する余裕もないため、FastPdfKitを選択しました。


私はこれが明確な答えだとは思いません。ライブラリは私たちのニーズに合っていますが、あなたのニーズには合わないかもしれません。また、商品です。もっと簡単な解決策があれば、喜んで受け入れます。

于 2013-01-14T20:53:22.330 に答える