MonoTouch родное управление ресурсами

Пример:

var image = UIImage.FromFile("/path/to/image.png");
var imageView = new UIImageView();
imageView.Image = image;
image.Dispose();

Будет ли исходная ссылка из UIImageView поддерживать исходное исходное изображение живым или этот сбой рано или поздно произойдет, потому что собственное изображение на самом деле мертво?

Обновить:

void Foo()
{
  var image = UIImage.FromFile("/path/to/image.png");
  this.imageView = new UIImageView();
  this.imageView.Image = image;
}

Будет ли это утечка основного нативного изображения?

1 ответ

Решение
  1. Нативный UIImageView будет сохранять ссылку на изображение, поэтому он не будет аварийно завершать работу.
  2. Нет, он не пропустит базовый нативный образ. Но это может закончиться намного позже, чем вы ожидаете. Мы рекомендуем вам вызывать Dispose, как только вы закончите с изображениями, так как они, как правило, используют много памяти, о которой сборщик мусора не знает.
Другие вопросы по тегам