我的iPhone应用程序在后台打开并选择Tab atIndex:0后崩溃
我真的搞不懂。当我在我的应用程序中单击链接打开Safari,浏览网页,然后返回到我的应用程序时,我可以在我的我的iPhone应用程序在后台打开并选择Tab atIndex:0后崩溃,iphone,uiviewcontroller,uitabbarcontroller,uitabbaritem,backgrounding,Iphone,Uiviewcontroller,Uitabbarcontroller,Uitabbaritem,Backgrounding,我真的搞不懂。当我在我的应用程序中单击链接打开Safari,浏览网页,然后返回到我的应用程序时,我可以在我的UITabBar中打开并浏览两个tabBarItems。但是,当我尝试选择一个atIndex:0时,我会得到一个EXEC\u BAD\u访问权限以及以下内容:(.有人能帮我找出如何避免这种情况发生吗?我目前没有在will或dienterbackground或前台执行的代码。没有。所以问题一定是在第一个选项卡的UIViewController中。(哦,我也不知道为什么要添加子视图。相关的?)
UITabBar
中打开并浏览两个tabBarItems
。但是,当我尝试选择一个atIndex:0
时,我会得到一个EXEC\u BAD\u访问权限以及以下内容:(.有人能帮我找出如何避免这种情况发生吗?我目前没有在will
或dienterbackground
或前台执行的代码。没有。所以问题一定是在第一个选项卡的UIViewController
中。(哦,我也不知道为什么要添加子视图。相关的?)有什么想法
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x0109ba63 objc_msgSend + 23
1 UIKit 0x0031f3df -[UIView(Internal) _didMoveFromWindow:toWindow:] + 966
2 UIKit 0x0031f1b0 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
3 UIKit 0x0031f1b0 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
4 UIKit 0x0031f1b0 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
5 UIKit 0x0031f1b0 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
6 UIKit 0x0031f1b0 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
7 UIKit 0x0031dfc4 -[UIView(Hierarchy) _postMovedFromSuperview:] + 166
8 UIKit 0x00316dfc -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1080
9 UIKit 0x0031514f -[UIView(Hierarchy) addSubview:] + 57
10 UIKit 0x003725ac -[UITransitionView transition:fromView:toView:] + 563
11 UIKit 0x00371955 -[UITransitionView transition:toView:] + 129
12 UIKit 0x003a6383 -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 459
13 UIKit 0x003a4d86 -[UITabBarController transitionFromViewController:toViewController:] + 64
14 UIKit 0x003a6b7e -[UITabBarController _setSelectedViewController:] + 263
15 UIKit 0x003a69ed -[UITabBarController _tabBarItemClicked:] + 352`
坏访问意味着您可能正在访问指向已释放内存的内容。在您描述的情况下,您的视图很可能是由于内存不足警告而卸载的,尤其是那些不可见的警告。如果您没有准备好卸载,当视图重新加载时,坏事情通常会发生。确保您在视图控制器中正确处理viewDidUnload方法和交互viewDidLoad。当应用程序从bg返回时,它是否在崩溃的视图控制器中调用viewDidLoad?是的。三个选项卡中的两个都可以。但我认为@rcw3是正确的。这肯定是内存问题(我加载了一个1030 x 450像素的图像,我还没有接触到它的内存)。处理它的最佳方法是什么?我应该在图像再次加载后重新加载它吗?还是每次加载ViewDidLoad?我都在努力解决这个问题,因为这是导致此错误访问的原因。谢谢。包含这两种方法的代码会有所帮助。我们可以将问题缩小到更窄。完美。这一定是问题所在。请参阅我上面的评论。您有什么建议吗有什么办法可以修复它吗?非常感谢。我已经解决了。我所要做的就是使用应用程序委托重置原始上下文并取消viewcontroller。