MonoTouch本机资源管理

时间:2013-06-06 10:06:43

标签: c# xamarin.ios

示例:

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 个答案:

答案 0 :(得分:3)

  1. 原生UIImageView将保留对图像的引用,因此不会崩溃。
  2. 不,它不会泄漏底层的原生图像。但它最终可能会比你期望的更快地释放很多。我们建议您在完成图像后调用Dispose,因为它们往往会占用垃圾收集器不知道的大量内存。