我最近收到了从iTunes连接的崩溃报告。其实这是我从数千用户那里得到的唯一的崩溃报告。这是一个iPod4,1设备。有趣的部分是:
Date/Time: 2012-02-27 22:53:27.596 +0800 OS Version: iPhone OS 5.0.1 (9A405) Report Version: 104 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x00000000,0x00000000 Crashed Thread: 0 Last Exception Backtrace: 0 CoreFoundation 0x338958bf __exceptionPreprocess + 163 1 libobjc.A.dylib 0x303891e5 objc_exception_throw + 33 2 UIKit 0x31259749 -[UIViewController mutableChildViewControllers] + 1 3 UIKit 0x31259349 -[UINavigationController pushViewController:animated:] + 37 4 MyApp 0x000081e5 -[MyListController tableView:didSelectRowAtIndexPath:] (MyListController.m:207) 5 UIKit 0x312d3565 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 945 6 UIKit 0x3134bce7 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 159
看来,当从表视图中选择一行,并将新的视图控制器推入导航时,会发生崩溃。根据我的代码,新的视图控制器已经被创建,所以崩溃发生在UINavigationController中。
解决方法
听起来好像用户有一个低内存警告。 UINavigationController将保留他们的观点,而标签的UNAavigationController将会弹出隐形的视图。然而,低内存代码仍然被调用。在到达现场之前检查您的警告处理程序。另外,在硬件菜单的所有入口点和出口点点击“Simulate Memory Warning”进行测试。
http://forums.macrumors.com/showthread.php?t=876419显示了当你没有发生什么的混乱。
iphonedevsdk.com/forum/iphone-sdk-development/14225-uinavigationcontrollers-and-didreceivememorywarning.html有一个很好的评论或如何处理这个。
http://forums.macrumors.com/showthread.php?t=876419显示了当你没有发生什么的混乱。
iphonedevsdk.com/forum/iphone-sdk-development/14225-uinavigationcontrollers-and-didreceivememorywarning.html有一个很好的评论或如何处理这个。
我打赌你的视图控制器加载某些东西并引起内存警告。确保用户不能堆叠大量的物品在彼此之上,并确保您的应用程序被分析以删除尽可能多的泄漏,以保持应用程序。
以上可能不符合标准,但应与之相关。
最后注意,不要使用ARC。不允许调用超类函数的东西一定会搞砸。如果你了解桥接核心基金会,那么也许ARC是好的。我个人不顾一切地避免这种情况,苹果公司的下一代内存随机处理。我看到他们的东西失败了太多