Должны ли мы вызвать метод dispose для NSDate в Xamarin.iOS

Из-за проблемы утечки памяти я очистил свои объекты после того, как покинул страницу компонента, где я вызвал dispose для переменной NSDate. Мой вопрос, должны ли мы позвонить dispose для переменной NSDate или она будет автоматически dispose пока покидаю страницу. Пожалуйста, поделитесь своим предложением.

1 ответ

Решение

Как вы можете видеть жизненный цикл объекта, написанного на

https://developer.xamarin.com/api/type/Foundation.NSObject/

Когда вы создаете объект из C# с помощью оператора "new", объект изначально будет принадлежать C#, а C# будет сохранять ссылку на объект. Эта ссылка будет отброшена только в том случае, если сборщик мусора определит, что на нее нет ожидающих управляемых ссылок, или когда вы вручную вызовите метод Dispose для объекта.

Объекты будут автоматически очищаться сборщиком мусора, если на него не будет отложенных управляемых ссылок.

Возвращаясь к вашему вопросу, вы знаете, что NSDate наследуется от NSObject, поэтому при создании экземпляра NSDate жизненный цикл экземпляра управляется сборщиком мусора. Когда вы покидаете свою страницу, экземпляр больше не будет использоваться, и он будет очищен сборщиком мусора автоматически.

Таким образом, вы можете вызвать метод dispose, чтобы очистить его, но обычно в этом нет необходимости.

Вот аналогичная ссылка на проблему, которая может вам помочь:

Вам нужно избавиться от объектов и установить их на ноль?

Только сборщик мусора Соберите переменную на основе C#. Но Nsobject не будет собираться сборщиком мусора. Поэтому мы должны удалить его вручную. Используя метод утилизации.

Другие вопросы по тегам