UIWebviewにてPDFを立て続けに読み込ませるとアプリが落ちる現象。(Air2のみ)

//ソース
//ここまでソース

ソースの簡単な説明
 1.起動時にWebviewを生成
 2.Webviewを画面いっぱいに広げる
 3.http://mazur.me/SwiftInFlux/docs/6.3-beta1.pdfを読み込ませる。
 4.1.5秒間隔でタイマー発動
 5. 同じPDFを再度読み込ませてる(1.5秒間隔でループ)

その他memorywarning受けるとカウントアップしてラベルに表示するようにしてます。

Air2はiOS8.1 8.2 8.3で確認
実行結果1(Air2)
 実行後どんどんメモリ使用量が上がっていく
 実メモリの半分あたりでmemorywarning発生(35回くらい)
 なぜかゆるやかにメモリ使用量が減ってく(←謎)
 MAX使用量の半分あたりでフリーズ(か落ちる)

実行結果2(Air2)
 実行後どんどんメモリ使用量が上がっていく
 実メモリの半分あたりでmemorywarning発生(35回くらい)
 フリーズ(か落ちる)

実行結果3(Air iOS8.1.3、iPad4 iOS 8.1)
 実行後どんどんメモリ使用量が上がっていく
 実メモリの半分あたりでmemorywarning発生(1回のみ)
 一気に起動直後くらいのメモリ使用量まで減る
 その後何故か増えていかない(うまい具合に開放してる?)

共通してどれも起動後はメモリ使用量が増えていくこと。
なんなんでしょうねコレ

ローカル上のPDFでも同じでした。
ソースに記載してあるPDFだとファイルサイズ小さいのでメモリ使いきるまでちょっと時間かかるかも。
自分はWin7のピクチャーに最初から入ってたペンギンの画像をPDF化して使いました。

Webviewの使い方間違ってるのかな・・・?
でもURLにPDF指定すればいいだけだよね・・・????


ん~困ったなぁ・・・・



追記
WKWebviewだと一時間で1MB※くらい増えてく
 UIWebviewよりだいぶマシ

デメリット
 WKWebViewだとiOS8からとなる
 ローカルファイルが開けない
  →tmpにコピーすればいけるけどめんどくさいし開けててもエラー吐く
   →めんどくさいしググってもよくわからないエラー吐くから気持ち悪い
   →tmpにすでに同名のファイルがあるとコピー時にエラー?吐く
    →これもまためんどくさい。tmp内全部削除すりゃいいけど

メリット
 メモリリークがいつ発生するのかビクビクしなくて良くなる。


※1.6MBのPDFの場合

コメント

このブログの人気の投稿

dTVターミナルでホームボタンを別なアプリに割り当てるやつちゃんと作ったヨ

dTVターミナル買ってみたよ(ついでにゴニョゴニョしてみた)

ニトリの「リモコンで操作できるLED電球 リモコン付(LE-01)」はHueブリッジにペアリングできるのか