完成对UIImage
和CGImage
的处理后,是否需要在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映像。