C# MonoTouch本机资源管理

C# MonoTouch本机资源管理,c#,xamarin.ios,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

例如:

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;
}
这会泄漏底层本机映像吗

  • 本机UIImageView将保留对图像的引用,因此不会崩溃
  • 不,它不会泄漏底层本机映像。但它最终可能比你想象的要晚很多。我们建议您在处理完映像后调用Dispose,因为它们往往会占用大量内存,而垃圾收集器对此一无所知

  • 谢谢你的澄清。所以他们被终结器释放了。