Pregunta

Realmente no puedo resolver esto. Cuando hago clic en un enlace para abrir Safari desde mi aplicación, navegar por la página web y luego volver a mi aplicación, puedo abrir y navegar dos tabBarItems en mi UITabBar. Pero, cuando intento seleccionar el atIndex: 0, Obtengo un EXEC_BAD_ACCESS y lo siguiente :(. ¿Alguien puede ayudarme a descubrir cómo hacer que esto no suceda? Actualmente no tengo ningún código que se ejecute will o didEnterBackground o Foreground. Ninguna. Entonces el problema debe estar en el UIViewController Para la primera pestaña. (Ah, y no sé por qué está agregando una subvisión. ¿Relacionado?). ¿Pensamientos?

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`
¿Fue útil?

Solución

El bad_access significa que es probable que esté accediendo a algo que apunta a la memoria que se ha lanzado. En la situación que describe, es muy posible que sus puntos de vista estén descargando debido a una baja advertencia de memoria, particularmente las que no son visibles. Si no está preparado para esta descarga, cuando la vista se vuelve a cargar, generalmente suceden cosas malas. Asegúrese de manejar adecuadamente su método ViewDidUnload y el ViewDidLoad recíproco en sus controladores de vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top