完成使用后,我是否需要在MonoTouch应用程序中处理UIImage
和CGImage
?处置其中任何一个有什么影响?
如果图像仍然可见,是否可以安全地处理它们?
答案 0 :(得分:3)
我建议使用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图像。