2011-03-08 4 views
0

5 개의 메뉴가있는 UITabBar가 있습니다. 5 개의 메뉴 중 2 개는 viewWillAppear 메서드에 새 스레드를 생성합니다. 이 메소드에서 백그라운드로 웹 서버에 HTTP 요청을 보냅니다. 웹 서버는 XML 형식의 데이터를 반환합니다. 데이터를 수신 한 후 데이터를 구문 분석하고 데이터를 로컬 NSMutable 배열에 저장합니다. 이 부분은 훌륭하지만 문제는 새로운 스레드를 생성하는 메뉴에서 tabbar 메뉴 중 하나를 클릭하면 응용 프로그램이 충돌한다는 것입니다. 나는 그때 응용 프로그램이 충돌하지 않는 새로운 스레드 부분을 산란 댓글을 달았습니다 ...이 문제가 발생할 수 있습니까?목표 C, A 탭바 및 멀티 스레드에 관한 질문

답변

0

소스 코드가 없으므로 알기가 쉽지 않지만 스레드가 실행되는 동안 사용자가 다른 작업을 수행 했으므로 릴리스 된 곳의 대표 스레드를 반환하는 것과 비슷한 문제가있었습니다.

+0

[self performSelectorInBackground : @selector (getPosts) withObject : nil]; 각 탭 메뉴에 대해 viewWillAppear 메서드에서이 코드를 사용합니다. – codereviewanskquestions

+0

또한 대리인이 출시되었음을 의미합니까? – codereviewanskquestions

+0

내가 무슨 뜻인지, 배경 스레드가 일부 델리게이트를 호출 할 때 [델리게이트 finshedLoading : posts]라는 델리게이트 호출을 끝낼 때처럼 델리게이트가 일부보기 컨트롤러이지만 콜보기에서 끝날 수있는보기를 전환하여 해제했을 때와 같은 의미였습니다. –