2011-06-14 3 views

답변

0

Java 및 C# 배경을 가진 개발자는 iOS에서 예외 처리를 위해 바인딩됩니다. 애플은 알려진 오류를 해결할 수있는 정말 좋은 API를 가지고 있지만, 프로그램은 예외적 인 것이어야한다. 일반적으로 Sigabrt는 객체가 해제 될 때 발생하며 SIGKILL은 일반적으로 메모리 부족으로 인해 시스템이 응용 프로그램을 종료 할 때 발생합니다. 그래서 the memory management guide by apple을 읽어 보시기 바랍니다. 또한 this linkthis.까지 갈 수 있습니다. Apple에는 exception handling - NSException에 대해 정의 된 클래스가 있습니다.

귀하의 동의율을 높이기 위해 노력하십시오.

행운을 빈다.

+0

사용자가 OS 전반의 개인 정보 설정을 변경하면 SIGKILL이 OS에 의해 발급됩니다. 메모리 관리는이 시나리오를 피할 수 없습니다. 나는 누군가가 이것으로부터 우아하게 회복 할 수있는 수용 가능한 방법을 발견했는지 의문이다. 내 경우에는 앱이 정지되어 작업 관리자로부터 하드 리셋이 필요합니다! – sirvine

+0

위의 내 설명을 명확히하기 위해 앱이 Xcode에서 실행될 때만 고정 된 것처럼 보입니다. Xcode에서 다운로드하지 않으면 정상적인 재부팅 동작이 가능합니다. – sirvine

2

응용 프로그램 대리인에 NSUncaughtExceptionHandler를 등록하면 대부분의 처리되지 않은 예외를 잡을 수 있습니다.

마찬가지로 당신은 함정 sigaction 또는

당신이 모두 위의 링크에서 볼 수 있듯이 signal를 사용하여 신호의 대부분은, 당신은 형 SIGKILL과 SIGSTOP의 신호를 잡을 수는 없습니다.

이러한 신호를 유발할 수있는 가능한 이유에 대해 코드를 분석해보십시오.

+0

링크가 끊어졌습니다. – bejado

관련 문제