Мой iPhone приложение зависает после открытия его из фона и выбора Tab atIndex: 0 - PullRequest
0 голосов
/ 02 февраля 2011

Я действительно не могу понять это. Когда я щелкаю ссылку, чтобы открыть 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 Ответ

2 голосов
/ 02 февраля 2011

BAD_ACCESS означает, что вы, вероятно, обращаетесь к чему-то, что указывает на освобожденную память. В описываемой вами ситуации вполне возможно, что ваши представления выгружаются из-за предупреждения о нехватке памяти - особенно тех, которые не видны. Если вы не готовы к этой выгрузке, когда представление перезагружается, обычно происходят плохие вещи. Убедитесь, что вы правильно обрабатываете свой метод viewDidUnload и ответный viewDidLoad в своих контроллерах представления.

...