在 iPAD 中注销时应用程序崩溃

Posted

技术标签:

【中文标题】在 iPAD 中注销时应用程序崩溃【英文标题】:Application crashes while logging out in iPAD 【发布时间】:2012-06-13 06:51:31 【问题描述】:

我的问题是针对 iPAD 的,我也知道 ios 的基本内存管理,但我遇到了不同的问题。

由于我已经构建了一个应用程序,其中有几个 UIViewControllers 和 UIViews, 我有一个登录控制器,当我启动应用程序时会调用它。

我的 MainView 是一个单一的屏幕,所有的 ViewController 都已加载并放置在各自的位置,并且应用程序运行良好且流畅。

问题:

当我注销时出现问题,大多数情况下,我的应用程序会因在后台输入EXC_BAD 而崩溃 [super dealloc] mainView 控制器的行。

就目前而言,我已经在我的所有 viewControllers 中添加了一个自定义函数 cleanUP,当用户从应用程序注销时会调用该函数。

这是正确的方法吗?

据我所知,我们可以在 didload 等函数中进行清理,并且也会调用 dealloc。

但是当我的所有视图控制器在我面前打开时,我有一个 iPAD,当我从应用程序注销时它们将关闭或不可见。

那么如何解决我的崩溃问题以及如何在我的 iPAD 中管理内存?

【问题讨论】:

我可以知道投反对票的原因吗?? 我只是猜测,但有些人可能会被双问号吓跑。 @DanAbramov :P 所以我会帮助消除他们的恐惧..这是编辑过的 可能是因为您没有发布任何相关代码...所以这个问题只能推测。谁能知道您在“自定义功能”中在做什么?注销也不是 iOS 中的标准操作,因此我们也不知道您在其中做什么。 @borrrden 正如我的自定义函数名称所说“cleanUp”,我只是删除其中的所有子视图。 【参考方案1】:

据我所知,解决不良访问问题的最佳方法是将 Instruments 与 Zombie 工具结合使用。您可能知道,当您遇到错误的访问问题时,是因为您尝试访问已释放的对象。

尝试转到产品 -> 配置文件并选择僵尸。点击记录并重现您的崩溃。然后检查指向导致崩溃的对象的指针并查找保留计数。

【讨论】:

以上是关于在 iPAD 中注销时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

(iOS) iPad 应用程序在启动时随机崩溃

执行注销例程时应用程序崩溃

应用程序在 iPad 中崩溃但在 iPad 模拟器中工作正常

IOS 8 iPad 应用程序在调用 UIActivityViewController 时崩溃

无法在 iPad 中使用应用程序内的 facebook 按钮注销

在 iPad mini 中使用语音听写时 100% iPhone 应用程序崩溃