4

我在这里有一个应用程序,可以归结为带有可以浏览的图像的 uiscrollviews。不过,我在这里遇到了一些非常奇怪的事情。

当浏览每张图片(总共大约有 60 张)时,应用程序有时会退出。我在 XCode 4(GM 种子 2)中运行它,我没有得到任何调试信息,控制台中也没有任何消息。打开 NSZombieEnabled,但这并没有改变任何东西。

我什至没有在设备上获得崩溃日志。我已经通过仪器运行它,它没有报告任何泄漏,并且在设备上运行时我的内存使用量在 700 到 1100KB 之间。

我什至检查了我的每个“页面”(您浏览的那些)并在 init 和 dealloc 中添加了消息,我可以确认它们都被正确地释放(只保持当前页面和每一侧的页面加载)。

现在,这似乎主要发生在应用程序中的同一点,当我刚从头开始浏览每个页面时,加或减几页,都指向内存问题,我确实收到了内存警告该设备,但绝对没有任何迹象表明我使用了大量内存,也没有任何泄漏。

当应用程序退出时,我从设备上的控制台得到了这个:

3 月 8 日 14:13:37 未知配置 [26]:jetsam:内核内存事件 (92),空闲:451,活动:2894,非活动:2267,可清除:0,有线:16709

3 月 8 日 14:13:37 未知配置 [26]:jetsam:正在创建内核终止快照

3 月 8 日 14:13:37 未知 com.apple.launchd[1] : (com.apple.AOSNotification) 退出:杀死:9

3 月 8 日 14:13:37 未知 com.apple.launchd[1] : (UIKitApplication:com.apple.mobilemail[0xc2ee]) 退出:杀死:9

3 月 8 日 14:13:37 未知 com.apple.launchd[1] : (UIKitApplication:no.NRC.NRCMag[0x3c6c]) 退出:杀死:9

3 月 8 日 14:13:37 未知 com.apple.launchd[1] : (com.apple.dataaccess.dataaccessd) 退出:杀死:9

3 月 8 日 14:13:37 未知 SpringBoard[30] :收到内存警告。等级=1

3 月 8 日 14:13:37 未知 SpringBoard[30]:应用程序“透视”异常退出,信号为 9:已终止:9

3 月 8 日 14:13:38 未知 SpringBoard[30]:应用程序“邮件”异常退出,信号 9:被杀死:9

3 月 8 日 14:13:38 未知 SpringBoard[30] :内存水平不正常(60%)。将“邮件”的自动重新启动延迟 30 秒。

3 月 8 日 14:13:38 未知 SpringBoard[30] :收到内存警告。等级=2

3 月 8 日 14:13:38 未知内核 [0]:launchd [1253] 内置配置文件:dataaccessd(沙盒)

3 月 8 日 14:13:39 未知 AOSN[1252]:AOSNotification 守护进程正在启动...

3 月 8 日 14:13:39 未知 AOSN[1252]:设备信息。名称:Calypso,BuildVersion:8F190,产品类型:iPad1,1,唯一设备 ID:f02b304ed9a62109de1f3efd3e1e23158a76b2d4

3 月 8 日 14:13:40 未知 ReportCrash[1254]:将崩溃报告保存到 /Library/Logs/CrashReporter/LowMemory-2011-03-08-141339.plist 使用 uid:0 gid:0,synthetic_euid:0 egid:0

3 月 8 日 14:13:40 未知 SpringBoard[30] :收到内存警告。等级=1

3 月 8 日 14:13:40 未知数据访问 [1253]:DA|注册唤醒通知

3 月 8 日 14:13:40 未知 AOSN[1252]:推送:加载中...

3 月 8 日 14:13:41 未知异形[1257]:异形|服务开始...

3 月 8 日 14:13:41 未知数据访问 [1253]:EAS|EAS 协议管理器设置为 ASProtocolUnknown

3 月 8 日 14:13:41 未知数据访问 [1253]:CalDAV|触发了刷新,但我们仍在等待网守锁

3 月 8 日 14:13:42 未知数据访问 [1253]:EAS|EAS 协议管理器设置为 ASProtocol12_1

现在这提到了一个崩溃报告,但是当它没有出现在 XCode 的 Organizer 中时,我如何获得它?为什么当仪器(以及对我的代码的彻底查看)说我没有使用太多内存,也没有泄漏时,我会收到内存警告?

帮助!

编辑:在这里启动并运行了 3.2.6,控制台现在给了我这个:

节目接收信号:“0”。

数据格式化程序暂时不可用,将在“继续”后重试。(加载共享库“/Developer/usr/lib/libXcodeDebuggerSupport.dylib”时出现未知错误)

4

1 回答 1

-1

好的,所以我在这里想通了,这有点傻。

我使用 UIImage 的 imageNamed 方法来加载每个图像/页面,显然这导致了内存警告。

有几件事让我有点困扰。

  1. 缓存显然是一件好事,但显然在 4.3 GM 中,当出现内存警告时,它似乎并没有真正清空其缓存。
  2. 我的应用程序没有报告正在使用的内存使用量。
于 2011-03-08T14:58:51.223 回答