我有一个应用程序,它将“实时字节”最多3mb。应用程序显示内存警告,它将不断崩溃。当我使用对象分配工具时,我可以在许多地方使用imageWithContentsOfFile查看实时bytes.im。我可以看到NSConcreteData对象占用了更多的内容。这有什么共鸣?我可以知道应用程序允许多少内存。
答案 0 :(得分:1)
你真的不知道你可以使用多少内存,但一般来说你在iPhone / iPod设备上可以达到20mb。但是,您的应用程序不仅可以使用太多内存,而且可以在发出警告时无法减少内存使用量。因此,即使您没有使用那么多内存,如果系统在收到内存警告时检测到您没有释放任何内存,那么您的应用可能会被关闭。 至少那是我的经验,也许其他人对所发生的事情有更详细的了解。
imageWithContentsOfFile:
有一个内置的缓存机制,所以如果你一遍又一遍地加载相同的图像,那么开销应该很小。
编辑: imageWithContentsOfFile:
不会缓存图片。方法imageNames:
会缓存图像,它是唯一可以执行的图像创建方法。