1

我对 Objective C 很陌生,这实际上是我的第一个应用程序......我正在开发一个包含项目列表的应用程序,每个项目都有自己的图像库,segues וarc。画廊占据了大约 90% 的屏幕,而一行缩略图占据了其余部分。

它在模拟器上运行正常,但是当我从一个画廊到另一个画廊时(有时在三到四次之后)应用程序崩溃(在真实设备上 - 带有 IOS 6 的 iPad2)。没有异常或错误,日志是干净的。当应用程序达到 350MB 的 RAM 时,它似乎崩溃了。

我相信在通过画廊之间没有记忆释放,即使我使用的是 בarc וsegues。

此外,在第一次进入每个画廊时,加载画廊需要几秒钟(仅在第一次运行时,如果我退出并重新进入同一个画廊,它会立即进入),这似乎进一步表明它保存在内存中.

我真的很喜欢任何想法,即使它很简单,因为这是第一个应用程序而且我不是很有经验。

感谢您的时间和帮助...

4

1 回答 1

1

我不确定确切的原因是内存问题。但是当您处理项目中的大负载(数据)时,您必须考虑内存达到当时为应用程序分配的最大可达数据大小会发生什么。

感谢 API,当应用程序达到系统可以处理的最大数据大小时,您有一个回调方法。

- (void)didReceiveMemoryWarning{
// 在此方法中,您可以删除(释放)视图控制器使用的额外内存
// 在您的案例UIImage中画廊的对象。
}

您不能直接调用此方法。这是一种系统调用方法。但是当您在模拟器中调试时,您可以选择要求调用方法。(模拟器状态栏:-- Hardware> Simulate Memory Warning)。

文档在这里

于 2013-03-01T11:28:50.047 回答