我正在考虑将精灵用于重型图像游戏。
我正在尝试确定在图像视图之间共享单个UIImage时是否分配了额外的内存。我通过创建40个图像视图进行测试,一次使用单个图像,一次创建40个图像实例,并且它们似乎使用相同数量的内存。
如果使用单个图像为每个图像视图分配额外的内存,那么使用精灵有什么用?
答案 0 :(得分:2)
我相信我刚回答了自己的问题。看来两个测试的内存分配是相同的,因为我使用imageNamed:来加载图像。如上所述:Dispelling the UIImage imageNamed: FUD
关于缓存的一般行为,它基于文件名进行缓存(因此+ imageNamed的两个实例:具有相同的名称应该导致对相同缓存数据的引用)
我使用imageWithContentsOfFile重新进行测试:发现共享同一个UIImage时没有分配额外的内存。