1

これにより、Xamarin でメモリ リークが発生する可能性がありますC#か? つまり、MyViewController を解放できますか、それとも循環参照があり、それを防いでいますか?

MyViewController で:

this.TableView.Source = new ViewSource(this);


public class ViewSource : UITableViewSource
{
    private readonly MyViewController parentController;

    public ViewSource(MyViewController parentController)
    {
        this.parentController=parentController;
    }
}

によると:

変数でそれ自体を参照するネストされたクラスをインスタンス化する場合、UITableViewController ガベージ コレクションは行われますか? 問題ありません。しかし、ソースが弱い場合、次のものがあるとどうなりますか:

this.TableView.Source = new ViewSource();

ソースは次の行から解放できますか? いずれにせよ、これは非常に危険な API のようです。

4

1 に答える 1