Утечка памяти в MvxBaseViewController в MvvmCross-iOSSupport?

#memory-management #xamarin.ios #mvvmcross

#управление памятью #xamarin.ios #mvvmcross

Вопрос:

Я использую MvxBaseViewController из библиотеки поддержки iOS для обработки клавиатуры.

Переопределяя dispose, я заметил, что мое представление, которое наследуется от MvxBaseViewController, не собирается GC, когда оно извлекается из Navigationcontroller.

Когда я добавляю следующее в MvxBaseViewController…

 public override void ViewWillDisappear(bool animated)
    {
        base.ViewWillDisappear(animated);

        this.UnregisterForKeyboardNotifications();

        this.View.RemoveGestureRecognizer(this.tap);
    }
  

… и когда я добавляю / удаляю делегат ShouldReturn, на мой взгляд, вот так…

 public override void ViewWillAppear(bool animated)
{
    base.ViewWillAppear(animated);
    this.myTextField.ShouldReturn  = this.TextFieldShouldReturn;
}

public override void ViewWillDisappear(bool animated)
{
    base.ViewWillDisappear(animated);
    this.myTextField.ShouldReturn -= this.TextFieldShouldReturn;
}
  

.. затем мое представление удаляется.

Я новичок в MvvmCross и управлении памятью в Xamarin, поэтому мои вопросы:

Есть ли у меня какие-либо недостатки в этом обходном пути? Это правильный способ решения этой проблемы?