0

使用完之后,是否需要在 MonoTouch 应用程序中处理UIImages 和s?CGImage处置其中任何一个有什么影响?

如果图像仍然可见,处理它们中的任何一个是否安全?

4

1 回答 1

3

我建议对这样的图像使用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 图像。

于 2012-10-07T14:12:02.040 回答