2011-07-28 7 views
0

내 앱을 종료 할 때 (홈 버튼을 누르지 않고 배경으로 이동하면) 내 앱이 충돌합니다. 문제는 viewDidUnload에서 출시 된 일부 개체가 dealloc에서 다시 릴리스되지만 문제가 아닌 것 같습니다. 내 코드에는 10000 개가 넘는 행이 있으므로 버그 나 버그를 신속하게 찾아 낼 수있는 도구 나 메서드가 있습니까? 아니면 두 번 출시되는 하나의 객체가 아닌 다른 객체에 의해 발생 했습니까?종료 할 때 iOS 앱이 충돌하며 디버그하는 방법은 무엇입니까?

감사합니다. 또한, 나는 viewDidUnload 및 할당 해제에 메시지를 기록했지만, 오류 메시지가 표시되지 않았다

When crashes

: 여기

는 왼쪽 창의 스크린 샷이다.

- (void)viewDidUnload { 
    print "viewDidUnload 1"; 
    // actual method body 
    print "viewDidUnload 2"; 
} 

dealloc과 동일합니다.

편집 2 : 내 응용 프로그램에서 핵심 데이터를 사용하므로 핵심 데이터를 종료 할 때 수동으로 완료해야하는 항목이 있습니까 (아니면 충돌이 발생합니까)?

+0

디버그 종료 로그가 도움이 될 것입니다. –

+0

오류 콘솔 출력을 게시하십시오 –

답변

3

실제 장치에서 테스트하십시오. 응용 프로그램이 충돌하면 충돌 로그가 생성됩니다. Organizer Window의 Device Logs 섹션에서 해당 장치에 해당하는 XCode를 사용할 수 있습니다.

그 로그는 충돌의 호출 스택을 제공하여 검색해야 할 장소를 좁힐 수 있습니다.

0

코드를 게시하지 않았다면 말하기 어렵습니다.

오류 로그가 있습니까?

당신은 어떻게 viewDidUnload에서 석방합니까?

[_mayVar release];    // 1. on its own this will most likely cause a crash 

[_mayVar release]; _myVar = nil; // 2. This is better as sets the pointer to nil 

self.myVar = nil;    // 3. If you use properties this is easier than line 2 
+0

감사합니다. 스크린 샷을 업로드했습니다. – hzxu

+0

시뮬레이터 대신 실제 장치에서 테스트하면 더 자세한 결과를 볼 수 있을까요? – hzxu

0

동일한 문제가 있고 실제 장치에서 실행하면 FlurryAnalytics에서 충돌이 발생하는 것으로 나타났습니다. 그걸 사용 하시나요? 이 충돌을 해결하기 위해 프로젝트를 완전히 종료해야했습니다 (세션을 시작하지 않았을뿐만 아니라).

관련 문제