Приложение на моем iPhone вылетает после открытия его из фона и выбора Tab atIndex:0
Я действительно не могу понять это. Когда я нажимаю ссылку, чтобы открыть Safari из моего приложения, просматривать веб-страницу, а затем возвращаться в свое приложение, я могу открыть и просмотреть два tabBarItems
в моем UITabBar
, Но когда я пытаюсь выбрать один atIndex: 0
Я получаю EXEC_BAD_ACCESS
и следующее:(. Может кто-нибудь помочь мне понять, как этого не происходит? У меня в настоящее время нет кода, который выполняется в will
или же didEnterBackground
или же Foreground
, Никто. Так что проблема должна быть в 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`
1 ответ
BAD_ACCESS означает, что вы, вероятно, обращаетесь к чему-то, что указывает на память, которая была освобождена. В описываемой вами ситуации вполне возможно, что ваши представления выгружаются из-за предупреждения о нехватке памяти - особенно тех, которые не видны. Если вы не готовы к этой выгрузке, когда представление перезагружается, обычно происходят плохие вещи. Убедитесь, что вы правильно обрабатываете свой метод viewDidUnload и ответный viewDidLoad в своих контроллерах представления.