【问题标题】:iOS App crashes on exit, how to debug?iOS App在退出时崩溃,如何调试?
【发布时间】:2011-07-28 23:44:29
【问题描述】:

我的应用程序在我退出时崩溃(不是按主页按钮并转到后台),我想问题是 viewDidUnload 中释放的一些对象在 dealloc 中再次释放,但我不确定。由于我的代码有10000多行,有什么工具或方法可以快速定位错误吗?还是由其他原因引起的,而不是一个对象被释放两次?

谢谢!

这是左窗格的屏幕截图:

另外,我尝试在 viewDidUnload 和 dealloc 中记录消息,但没有看到任何错误消息。

- (void)viewDidUnload {
    print "viewDidUnload 1";
    // actual method body
    print "viewDidUnload 2";
}

dealloc 也一样。

编辑 2: 我的应用使用 Core Data,所以我需要在退出 Core Data 时手动完成任何操作(否则会崩溃)?

【问题讨论】:

  • 调试终止日志会很有帮助。
  • 请发布错误的控制台输出

标签: ios debugging crash quit


【解决方案1】:

在真机上测试——如果应用崩溃,会生成崩溃日志。它将在 XCode 的管理器窗口中的 Device Logs 部分中与您的设备对应。

该日志将为您提供崩溃的调用堆栈,可能会缩小您需要搜索的位置。

【讨论】:

    【解决方案2】:

    如果你没有发布任何代码,这很难说。

    您有任何崩溃日志吗?

    你在viewDidUnload发布的怎么样?

    [_mayVar release];               // 1. on its own this will most likely cause a crash
    
    [_mayVar release]; _myVar = nil; // 2. This is better as sets the pointer to nil
    
    self.myVar = nil;                // 3. If you use properties this is easier than line 2
    

    【讨论】:

    • 谢谢,我已经上传了截图。
    • 你认为如果我在真机而不是模拟器上测试,我会看到更详细的结果吗?
    【解决方案3】:

    我有同样的问题,在真实设备上运行它表明它在 FlurryAnalytics 中崩溃。你用那个吗? 我必须将其从项目中完全删除(不仅不启动会话!)以修复此崩溃。

    【讨论】:

      猜你喜欢
      • 2019-11-15
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 2018-03-18
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多