我对目标C很新,这实际上是我的第一个应用...... 我正在开发一个具有项目列表的应用程序,每个项目都有自己的图像库,segues和arc。画廊占据了大约90%的屏幕,剩下的就是一排缩略图。
它在模拟器上运行正常,但是当我从一个图库到另一个图库(经过三到四次传递后)时,应用程序崩溃(在真实设备上 - 带有IOS 6的iPad2)。 没有异常或错误,日志是干净的。当应用程序达到350MB RAM时,它似乎崩溃了。
我相信通过画廊之间没有记忆释放,即使我使用的是בarc和segues。
此外,在每个画廊的第一个条目上,画廊加载需要几秒钟(仅在第一次运行时,如果我退出并重新进入同一个画廊,它会立即进入),这似乎进一步表明它是保留的在记忆中。
我真的很喜欢任何想法,即使它很简单,因为这是第一个应用程序而且我不是很有经验。
感谢您的时间和帮助...
答案 0 :(得分:1)
我不确定这个问题的确切原因是内存问题。但是当您处理项目中的大型有效负载(数据)时,您必须考虑内存达到当时为应用分配的最大可达数据大小所发生的情况。
用于API的Thanx,当您触发应用程序达到系统可以处理的最大数据大小时,您有一个回调方法。
- (void)didReceiveMemoryWarning{
//在此metod中,您可以删除(释放)视图控制器使用的额外内存
//在您的案例中UIImage
画廊的对象
}
您无法直接调用此方法。这是一个系统调用方法。
但是你可以选择在模拟器中调试时调用方法。
(模拟器状态栏: - Hardware
> Simulate Memory Warning
)。
文档here