使用完之后,是否需要在 MonoTouch 应用程序中处理UIImage
s 和s?CGImage
处置其中任何一个有什么影响?
如果图像仍然可见,处理它们中的任何一个是否安全?
使用完之后,是否需要在 MonoTouch 应用程序中处理UIImage
s 和s?CGImage
处置其中任何一个有什么影响?
如果图像仍然可见,处理它们中的任何一个是否安全?
我建议对这样的图像使用using
块:
using (var image = UIImage.FromFile ("demo.png"))
{
//do something with your image here
//such as passing it to an UIImageView.Image
}
当对象离开该块时,它将自动处置。
或者,您可以Dispose()
在知道使用完毕后调用 UIImage。
如果您不处理它们并加载大量图像,您最终将耗尽内存。使用该方法加载大图像UIImage.FromBundle()
是一个坏主意,因为它们被缓存,并且您无法控制何时处理缓存。
如果您处理UIImage
当前显示的一个,则不会发生任何坏事,UIImageView
因为它保留了对图像的自己的引用。因此,只有 C# 托管图像会被处理掉,但不一定是 Cocotouch 图像。