Disposing UIImage and CGImage



完成对UIImageCGImage的处理后,是否需要在MonoTouch应用程序中处理它们?处理它们中的任何一个会产生什么影响?

如果图像仍然可见,处理它们是否安全?

我建议对这样的图像使用using块:

using (var image = UIImage.FromFile ("demo.png"))
{
//do something with your image here
//such as passing it to an UIImageView.Image
}

当对象离开该块时,它将被自动处理。

或者,当你知道你已经用完了,你可以在UIImage上调用Dispose()

如果你不处理它们并加载大量图像,你最终会耗尽内存。使用UIImage.FromBundle()方法加载大图像是个坏主意,因为它们是缓存的,而且您无法控制何时处理缓存。

如果处理当前显示的UIImage,则UIImageView不会发生任何错误,因为它保留了自己对图像的引用。因此,只处理C#管理的映像,而不一定处理Cocoatouch映像。

最新更新