QLPreviewController を使用してファイルをプレビューしています。しかし、大きなファイルを開くと、メモリが大きくなり、破棄されません。
例: iPhone 4s で 6 Mb の txt と 5Mb の txt を開くと、アプリがフリーズまたはクラッシュします。Instruments を調べてください - 使用メモリ 230Mb。
クラスにフィールドがあります:
private QLPreviewController previewController;
public void OpenAnotherFile()
{
if (previewController != null) {
previewController.DataSource.Dispose ();
previewController.DismissViewController (false, null);
} else {
previewController = new QLPreviewController ();
}
// loading new file here
previewController.DataSource = new QLPreview ();
previewController.ReloadData ();
view.AddSubview (previewController.View);
}
このバリアントは、previewController の再作成なしですが、previewController.Dispose() と再作成を試みました。GC.Collect() を呼び出してみました - 何もありません。
多くのケース (データソースの破棄、ビューなど) を試しましたが、メモリがクリアされません。
私は提案します-私は自分自身が正しくありません。しかしここで?。
助けてください。ありがとう。