【问题标题】:iOS - Reasons for app crashing besides low memory? [closed]iOS - 除了内存不足之外,应用程序崩溃的原因是什么? [关闭]
【发布时间】:2012-08-13 13:53:29
【问题描述】:

试图弄清楚为什么我的应用有时会崩溃。我刚刚在 Leaks 中运行它,即使 Live Bytes 只有 3.09 MB,它也崩溃了。所以看起来我没有使用太多的内存。通过 Xcode 在设备上运行时发生崩溃时,没有错误记录到控制台。设备上也没有崩溃日志。

我还能做些什么来排除故障?

【问题讨论】:

  • 调试器在哪里停止,当它崩溃?
  • 您的问题太笼统,无法以特定方式回答。尝试减少崩溃时的特定错误和控制台消息。
  • 可能是您的应用程序段错误。或者随机被操作系统杀死。
  • 我猜这可能是错误的内存访问。在模拟器上试用 NSZombies

标签: ios memory-management crash crash-reports


【解决方案1】:

应用程序崩溃可能有多种原因。以下是一些最常见的。

  • 错误的内存访问。

    当您访问过度释放的内存对象时发生。要解决问题,请使用模拟器使用 NSZombies。有时在模拟器中无法模拟崩溃,在这种情况下,您只能靠自己。

  • 无效的参数异常

    通常在您访问一个属性或调用一个对象上没有的方法调用时发生。通常是由于对象的无效转换,例如将 NSArray 类型从 id 转换为 NSMutableArray 并尝试向其中添加对象。

    解决方案是使用断点进行调试,并使用以下命令查看对象的实际类并将对象转换为适当的类型。

    po [object class]
    
  • UIViewControllers 问题

    使用不存在的 xib 文件创建视图控制器。

    使用未在 IB 中设置的视图出口创建视图控制器。

    File Owner 中设置UIControl 的IBOutlet,例如UITextField,然后意外将其从File Owner 中删除,并且未在XIB 文件中重置。

还有更多.. !!

【讨论】:

  • 感谢您的建议。将尝试僵尸。另外两个似乎不是问题,因为它随机崩溃。这不是我可以通过遵循某些步骤来重现的。
猜你喜欢
  • 2013-05-24
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 2013-04-09
相关资源
最近更新 更多