2011-08-11 2 views
1

전체 앱을 작성했으며 방금 앱 스토어에 제출하려고했는데 마지막 테스트에서 적절한 메모리 관리가 이루어 지도록 몇 가지 릴리스를 추가했습니다. 그리고 그 이후로, 나는이 무작위 적 충돌을 계속 받고 있습니다. 릴리스 호출 중 일부 또는 전부를 제거하려고 시도했지만 객체를 보유하려고했습니다. 나는 그 프로젝트를 청소했다. NSZombieEnabled을 사용 했는데도 도움이되지 않습니다. 이 모든 것은 유용하지 않습니다.랜덤 크래싱 및 이상한 콘솔 출력

대부분의 경우 콘솔에는 도움이되지 않는다고되어 있습니다. 대개 앱이로드되고 NSLogsviewDidLoad, viewDidAppearviewWillAppear에 넣으면 모두 콘솔에 나타나고 충돌이 발생합니다.

때때로 나는 또한 EXC_BAD_ACCESS을 얻습니다. 그러나 그 무작위로 발생합니다. 그래서 이것은 나에게 이해가되지 않습니다. 가능한 모든 도움에 감사드립니다. 나는이 모든 응용 프로그램을 작성하고 몇 달을 보냈습니다. 그래서 나는 정말로 붙어있다. 고맙습니다.

+0

좀비 프로필을 만들었습니까? – Perception

+0

NSZombieEnabled를 YES로 설정하십시오! 그냥 검색 – Joe

+0

죄송합니다. NSZombieEnabled를 시도했는데 어디서 안되는지 언급하는 것을 잊어 버렸습니다. 감사합니다. – Andrew

답변

1

나는 Rudy에 동의합니다. 아직 사용중인 무언가를 발표하는 것 같습니다. 다시 작동하는 버전으로 돌아가서 충돌이 발생할 때까지 한 번에 하나씩 릴리스를 추가하기 시작했습니다. 느리지 만 효과적인 디버깅.

2

빌드 -> 분석을 시도해 보셨습니까? 코드 누출 및 누락 된 다른 유용한 정보를 검색합니다. 그것을 시도하고 그것이 당신을 위해 무엇인가를 찾아내는 지보십시오.

1

"때때로"EXC_BAD_ACCESS을 얻는다 고 말할 때, 나머지 시간은 무엇입니까? 크래시 스택에서 충돌이 있음을 나타내는 위치는 어디입니까? 어떤 메시지가 나옵니까?

무작위 충돌은 일반적으로 타이밍 문제를 나타냅니다. 일반적인 원인은 여러 스레드에서 작업에 액세스하는 것입니다. 너? 또한 네트워크 트래픽을 기반으로하는 타이밍 차이를 의미 할 수도 있습니다.

콘솔에 메모리 위반이 아닌 예외가 표시되지 않는지 확인하십시오. 일반적으로 콘솔에 뭔가 유용한 것이 있습니다.

+0

그것이 충돌하지 않는 때가 그것의 susposted로서 작동한다. 나는이 응용 프로그램에서 메인을 제외한 모든 스레드를 사용하지 않으며 이것은 데이터의 스트리밍이 아닙니다. 콘솔은 잘못된 접근이나'Current language : auto; 현재 objective-c' – Andrew

+0

EXC_BAD_ACCESS가 보이면 스택 추적을 통해 문제가 발생한 위치를 알 수 있습니다. –

+0

네, 저의 이전 경험이었습니다. 그러나이 경우에는 아무것도 아닙니다. 그게 내가 왜 그렇게 당혹스러워하는지. – Andrew