我的应用程序有一个奇怪的问题,整个 iOS 设备都被锁定,我唯一能做的就是重新启动设备。我没有看到任何异常被抛出,也没有在 Instruments 中看到任何内存泄漏。
该应用程序有一个带有主菜单的导航控制器。然后我推送一个视图控制器,该控制器正在加载一个图像网格。如果我在主菜单和网格之间来回切换,应用程序将在大约 15 次后崩溃。然而,被杀死的不仅仅是应用程序,而是整个操作系统,这是我从未见过的。
起初我以为我在泄漏内存,但 Leaks 没有显示任何内容。我正在玩分配,我看到网格视图控制器分配计数一直在增加。该应用程序正在使用 ARC,我不太喜欢它,因为它太“神奇”,但我认为它会正确清理。
我担心的一件事是 viewDidUnload 和 dealloc 在从导航控制器弹出后在我的网格视图控制器上被调用,所以我从不明确清理我的图像或终止网络连接。我认为这是问题所在,但我不知道什么时候应该杀死这些,因为通常的清理位置(即 viewDidUnload、dealloc)没有被调用。
这发生在运行 5.1 的 iPhone 和 iPad 上,我正在使用 AFNetworking UIImageView 类别来加载图像。
干杯,