众所周知,当使用imageNamed:
方法加载图像时,UIImage会缓存其图像数据.
来自苹果的文档:
imageNamed:
Discussion:此方法在
正因为如此,在用imageNamed:
个图像加载多个图像后,我注意到内存使用量大幅增加,而且即使在加载图像的控制器解除锁定后,内存仍在使用.(至少当我分配同一个控制器时,它没有再次增加)
这让我想知道是否有任何方法可以在应用程序生命周期的任何给定时间以编程方式清除UIImage使用的缓存,甚至控制一些缓存参数(例如,它可以使用的最大内存)
我知道我可以通过使用initWithData
、imageWithData
、imageWithContentsOfFile
或任何其他初始值设定项(而不是imageNamed
)轻松解决这个问题,但当使用多个图像时,比如在UITableView
中,这种缓存行为是需要的.
你有没有想过如何做到这一点?
编辑: