0

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

谢谢!

这是左窗格的屏幕截图:

崩溃时

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

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

对于dealloc也是一样。

编辑 2:我的应用程序使用核心数据,所以我需要在退出核心数据时手动完成什么(否则它会崩溃)?

4

3 回答 3

3

在真实设备上进行测试 - 如果应用程序崩溃,将生成崩溃日志。它将在与您的设备对应的设备日志部分的 XCode 管理器窗口中可用。

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

于 2011-07-29T01:55:12.610 回答
0

很难说您是否没有发布任何代码。

你有崩溃日志吗?

你是如何释放的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
于 2011-07-28T23:50:28.447 回答
0

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

于 2012-10-02T02:11:05.833 回答