UIImage initWithContentsOfFile:和缓存

时间:2010-11-20 05:27:55

标签: iphone cocoa-touch memory-management uiimage

我正在创建一个类似于Apple's Scrolling示例的UIView,我有一个关于UIImage和缓存的问题;我不知道我是否完全理解Apple文档的实际含义。

docs说:

  

讨论   此方法将图像数据加载到内存中并将其标记为可清除。如果数据被清除并需要重新加载,则图像对象将从指定路径再次加载该数据。

在实践中,这意味着什么?

我正在读它:如果系统内存不足,屏幕上没有显示的UIImages将被清除,并在需要时从指定的文件重新加载。

目前我正在加载相当多的图片,我很关心内存管理;如果我可以让系统按照自己认为合适的方式进行清除/缓存,那将会很棒,但我怀疑这是一个有效的解决方案。我很感激任何指示/澄清。

1 个答案:

答案 0 :(得分:1)

你正确地阅读它。如果你通过图片应用程序快速滚动,你会看到你有时击败应用程序,并遇到“加载......”漩涡。与UITableView相同...如果应用程序内存不足,它会清除图像,并在用户需要时重新加载它。

对于图像滚动,UIScrollView内存管理非常好;在这种情况下,您可以信任它来处理内存管理。如果您尝试自己或以其他方式进行操作,则可能会遇到缓慢,跳跃的UIScrollView风险,这绝不是好事。