1

SqliBits サンプルに似た MVVMCross を使用して Monotouch アプリケーションを開発しています (UINavigationCONtroller にはタブ コントローラーがあり、タブ コントローラー内には別のナビゲーション コントローラーがあります)。メモリが割り当てられているようですが、解放されていないようです。

このエラーを再現するには、プロファイラーを使用して SqliBits サンプルを起動し、[セッション] タブを選択してから、戻る日を選択し、戻る日を選択して、メモリ割り当てを確認すると、メモリが割り当てられているが解放されていないことがわかります。 .

まだ画像を添付することはできますが、エラーを再現するのはかなり簡単です。

よろしく、ダン

4

1 に答える 1

0

問題として、これはhttps://github.com/slodge/MvvmCross/issues/19で議論されています

iOS は、メモリ不足が発生した場合にのみ (View Controller の ViewDidUnload メソッドを介して) ビューを解放します。これは、シミュレータ内で [ハードウェア] メニューから人為的に作成することができます。

これに加えて、RelayCommand 内の Action フィールドで ViewModel への参照が原因のように見える小さなメモリ リークもありました。これの原因は完全には明らかではありませんが、この Action を null にする RelayCommand に Dispose メソッドを追加すると、問題が解決したようです ( https://github.com/slodge/MvvmCross/commit/8fc1af3fc9960445b5358daf8111f6bc9683b907を参照) 。

于 2012-08-02T12:03:36.970 に答える