ipad - iOS 应用程序在没有调试信息和日志消息的情况下退出的问题

标签 ipad ios memory crash xcode4

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

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

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

我什至检查了我的每个“页面”(你浏览过的页面)并在 init 和 dealloc 中添加了消息,我可以确认它们都得到了正确的释放(只保留当前页面和每一侧的页面已加载)。

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

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

Mar 8 14:13:37 unknown configd[26] : jetsam: kernel memory event (92), free: 451, active: 2894, inactive: 2267, purgeable: 0, wired: 16709

Mar 8 14:13:37 unknown configd[26] : jetsam: kernel termination snapshot being created

Mar 8 14:13:37 unknown com.apple.launchd[1] : (com.apple.AOSNotification) Exited: Killed: 9

Mar 8 14:13:37 unknown com.apple.launchd[1] : (UIKitApplication:com.apple.mobilemail[0xc2ee]) Exited: Killed: 9

Mar 8 14:13:37 unknown com.apple.launchd[1] : (UIKitApplication:no.NRC.NRCMag[0x3c6c]) Exited: Killed: 9

Mar 8 14:13:37 unknown com.apple.launchd[1] : (com.apple.dataaccess.dataaccessd) Exited: Killed: 9

Mar 8 14:13:37 unknown SpringBoard[30] : Received memory warning. Level=1

Mar 8 14:13:37 unknown SpringBoard[30] : Application 'Perspective' exited abnormally with signal 9: Killed: 9

Mar 8 14:13:38 unknown SpringBoard[30] : Application 'Mail' exited abnormally with signal 9: Killed: 9

Mar 8 14:13:38 unknown SpringBoard[30] : Memory level is not normal (60%). Delaying auto-relaunch of 'Mail' for 30 seconds.

Mar 8 14:13:38 unknown SpringBoard[30] : Received memory warning. Level=2

Mar 8 14:13:38 unknown kernel[0] : launchd[1253] Builtin profile: dataaccessd (sandbox)

Mar 8 14:13:39 unknown AOSN[1252] : AOSNotification Daemon Starting...

Mar 8 14:13:39 unknown AOSN[1252] : Device Information. Name: Calypso, BuildVersion: 8F190, Product Type: iPad1,1, Unique Device ID: f02b304ed9a62109de1f3efd3e1e23158a76b2d4

Mar 8 14:13:40 unknown ReportCrash[1254] : Saved crashreport to /Library/Logs/CrashReporter/LowMemory-2011-03-08-141339.plist using uid: 0 gid: 0, synthetic_euid: 0 egid: 0

Mar 8 14:13:40 unknown SpringBoard[30] : Received memory warning. Level=1

Mar 8 14:13:40 unknown dataaccessd[1253] : DA|Registered for wake notification

Mar 8 14:13:40 unknown AOSN[1252] : Push: Loading...

Mar 8 14:13:41 unknown profiled[1257] : profiled|Service starting...

Mar 8 14:13:41 unknown dataaccessd[1253] : EAS|EAS Protocol Manager set to ASProtocolUnknown

Mar 8 14:13:41 unknown dataaccessd[1253] : CalDAV|A refresh fired, but we're still waiting on a gatekeeper lock

Mar 8 14:13:42 unknown dataaccessd[1253] : EAS|EAS Protocol Manager set to ASProtocol12_1

现在这里提到了一个崩溃报告,但是如果它没有出现在 XCode 的管理器中,我该如何获取它呢?当 Instruments(并彻底查看我的代码)说我没有使用太多内存,也没有泄漏时,为什么我会收到内存警告?

帮助!

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

Program received signal: “0”.

Data Formatters temporarily unavailable, will re-try after a 'continue'. (Unknown error loading shared library "/Developer/usr/lib/libXcodeDebuggerSupport.dylib")

最佳答案

好吧,我想通了,这有点傻。

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

有几件事让我有点困扰。

  1. 缓存显然是一件好事,但显然在 4.3 GM 中,当出现内存警告时,它似乎并没有真正清空缓存。
  2. 累积的内存使用量未被报告为我的应用正在使用。

关于ipad - iOS 应用程序在没有调试信息和日志消息的情况下退出的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5233149/

相关文章:

memory - 多核架构中的CPU和内存访问

java - URLClassLoader - 使用加密的 Jar

javascript - iPad ajax问题

ipad - iPad 上的 jQuery Mobile 过渡缓和

html - 在 Web 应用程序中禁用 Ipad 上的自动电话检测

ios - NSURLProtocol 不响应 UIWebviews

memory - 将 32 位十六进制值分解为 4 个字节 [QB64]

objective-c - 从横向旋转到纵向后 UITableView 的奇怪行为 (iPad)

iphone - Gamecenter 显示名称在 Release模式下添加了引号

ios - ViewController 容器 UIView 的大小