iPhoneのPDF読み込みのメモリ解放について

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

スーパームーンって言うので、ジョギングがてら、空見てみた。
綺麗に丸い月が出ていたが、そんなに大きいとは思わんかったな。
どのへんがスーパーなのか???

1ヶ月ほど、欲しいアプリの1位だった、PDFのリーダーアプリで、欲しい機能を付けた読書アプリを作ってみて、朝、会社に出勤する時にデバッグがてら、ユーザー気分で使ってみた。
すると、ある一定の時間使うと、アプリ内でPDFののページが読み込まれなくなったり、アプリがプッツリと落ちる不具合に何度か遭遇した。

経験上、こればメモリ障害ということはすぐに分かった。
xcodeにiPhone端末をつないでいた時に、ビジュアルデバッガでのメモリ値も、ページをめくるたびに、増加していたことは、よく覚えている。

やはりモバイル端末、なんと非力なことか・・・

とはいっても、こういうメモリリーク系は、ちゃんと対応しないと、使用しているとストレスがたまるアプリになってしまい、使いづらいと言われる事間違いなしという事なので、真摯に対応する事にした。

調べてみると、やはりメモリ解放ができていないっぽい。

iOS5ぐらいから、autoreleaseがいらなくなったので、メモリって自動で開放されているんだろうとフレームワークをあまりにも信用しきっていたが、objective-cはそうではないらしい。

結論から言うと、PDFのを使っている場合に限って、下のようなコードが必要なようだ。

PDFのドキュメントを開いて、作業後、ちゃんと閉じてあげないと行けないってことね。

ちなみに、ページを読み込んだ後に、
CGPDFPageRelease(page);
が必要なのかと書いたところ、バグという風にデバッガに怒られてしまった。
どうやら、ドキュメントの開放だけでいいみたい。

とりあえず、ココ参考にしました。

2 comments

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です