私はライブラリに取り組んでおり、アプリケーションのメモリに問題が発生しました。
ユーザーが呼び出される関数を呼び出すことができるFileManagerというクラスを作成しました。loadNewFiles
この関数は、複数ファイル選択ダイアログを開き、各FileReferenceListをベクトルに格納します。removeList
いつでも関数を呼び出して、そのリストを削除し、そのリストに割り当てられたメモリとリスナーをクリアできるので、すべて問題ありません。
UploadManagerという別のクラスを作成しました。このクラスは、 FileReferenceオブジェクトの配列を受け取り、関数を介して URL にアップロードしますuploadFiles
。メモリリークはここにあるようです。この関数を呼び出すと、適切なイベント リスナーが追加され、アップロード関数が呼び出されます。アップロードが失敗するか、アップロードが完了すると、リスナーが削除され、待機していたベクトルがクリアされます。
アップロード マネージャーがファイルのアップロードを終了した後、FileManagerremoveFiles
で関数を呼び出します(以前は完全に機能していたことを思い出してください) が、... 何も起こりません。ファイルは両方のベクトルから削除され、リスナーは両方のファイルから削除されますが、メモリは割り当てられたままです。ライブラリを通じて利用できるファイルやアップロードなどの数に制限がないため、これは明らかに問題を引き起こす可能性があります。
クラス:
FileManager
UploadManager