0

을 선택하면 오류가 발생합니다. 실제로이 문제를 파악할 수 없습니다. 내 앱에서 Safari를 열려면 링크를 클릭하고 웹 페이지를 탐색 한 다음 내 앱으로 돌아가서 을 열고 UITabBar에 열어 볼 수 있습니다. 그러나 atIndex: 0을 선택하려고하면 EXEC_BAD_ACCESS과 다음과 같은 결과가 나옵니다. (아무도 내가 이런 일이 발생하지 않도록하는 방법을 알아낼 수 있습니까? 현재 will 또는 didEnterBackground 또는 Foreground으로 실행되는 코드가 없습니다. . 없음. 문제가. 첫 번째 탭의 UIViewController에 있어야합니다 그래서 (아, 그리고 나는 그것이 하위 뷰를 추가 왜 모른다. 관련?). 생각?내 iPhone 앱이 백그라운드에서 열리고 탭 atIndex : 0

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` 
+0

앱이 bg에서 돌아 오면 충돌하는보기 컨트롤러에서 viewDidLoad가 호출됩니까? – Max

+0

예. 세 개의 탭 중 두 개는 괜찮습니다. 그러나 나는 @ rcw3이 옳다고 생각한다. 그것은 확실히 메모리 문제입니다 (나는 1030 x 450px 이미지를로드했지만 아직 메모리의 관점에서 언급하지 않았습니다). 가장 좋은 방법은 무엇입니까? 이미지가 다시로드되면 다시 초기화해야합니까? 또는 매번 ViewDidLoad? 그것이 BAD_ACCESS의 원인이기 때문에 나는 그것에 고심하고 있습니다. 감사. –

답변

2

BAD_ACCESS는 가능성에 액세스하는 것을 의미 당신이 설명하는 상황에서, 메모리 부족 경고 (특히 눈에 보이지 않는 경고)로 인해 뷰가 언로드 될 가능성이 매우 높습니다. 언로드 할 준비가되지 않은 경우, 그 보기 재로드, 나쁜 일이 일반적으로 발생합니다. 뷰 컨트롤러에서 viewDidUnload 메서드와 reciprocal viewDidLoad를 적절히 처리해야합니다.

+0

이 두 가지 방법에 대한 코드를 포함하면 도움이됩니다. 우리는 문제를 더욱 좁힐 수 있습니다. – raidfive

+0

완벽. 그것은 문제가되어야합니다. 위 내 의견을 참조하십시오. 이 문제를 해결할 아이디어가 있습니까? 고마워. –

+0

그것을 알아 냈습니다. 내가해야했던 것은 원래의 컨텍스트를 재설정하고 뷰 콘트롤러를 없애기 위해 애플 리케이션 델리게이트를 사용하는 것이었다. –