objective-c – UIKit:[UIViewController mutableChildViewController]崩溃?

前端之家收集整理的这篇文章主要介绍了objective-c – UIKit:[UIViewController mutableChildViewController]崩溃?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近收到了从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有一个很好的评论或如何处理这个。

我打赌你的视图控制器加载某些东西并引起内存警告。确保用户不能堆叠大量的物品在彼此之上,并确保您的应用程序被分析以删除尽可能多的泄漏,以保持应用程序。

以上可能不符合标准,但应与之相关。

最后注意,不要使用ARC。不允许调用超类函数的东西一定会搞砸。如果你了解桥接核心基金会,那么也许ARC是好的。我个人不顾一切地避免这种情况,苹果公司的下一代内存随机处理。我看到他们的东西失败了太多

原文链接:/xcode/582173.html

猜你在找的Xcode相关文章