2012-03-28 1 views
1

저는 며칠 동안 해결하려고 애 쓰고있는이 응용 프로그램에서이 끔찍한 충돌이 발생했습니다. 코드는 웹 서비스에 요청을 보내는 NSURLRequest입니다. 프로덕션 환경에서 이미 웹 서비스를 사용하고 있으며 단순히이 새로운 서비스 요청을 추가했습니다. 마지막으로 @try ... @catch를 악의적 인 코드 주위에 추가했는데 여전히 응용 프로그램이 충돌하고 아무 것도 "catch"하지 않습니다.ipad : 응용 프로그램에서 크래시가 예외를 생성하지 않습니다?

어떻게 디버깅합니까?

필자는 피어 리뷰를 포함하여 코드 검사를 사용했습니다.

코드는이 ... 같은 곳 "세션 객체"는 NSObject의가 함께 :

id      _delegateConnection; 
id      _delegateReceiver; 
NSURLConnection   *connection; 
NSMutableURLRequest  *urlServiceRequest; 
NSMutableString   *bodyRequest; 
NSHTTPURLResponse  *httpResponse; 
NSMutableData   *responseData; 
NSError     *error; 

@try { 
    [httpClient setDelegateReceiver: self]; 
    [httpClient buildRequest: dictParameters]; 
    [httpClient executeRequest]; 
} 
@catch (NSException *exception) { 
    NSLog(@"%s: %@", __FUNCTION__, exception); 
} 
@finally { 
    // Add code here ... 
} 
+1

충돌로 인해 오류 유형 및 스택 추적이있는 충돌 보고서가 생성됩니까? @try와 step 내의 첫 번째 줄을 어기면 어떤 것이 끝나나요? (실패한 코드의 내부를 밟을 수있는 코드가 있습니까?) –

+0

아니요 - 그냥 종료됩니다. 그것은 내 executeRequest 메서드 안에 있습니다. 좋은 지적 - 코드를 업데이트하여 불쾌한 한 줄을 따라 잡으려고합니다. – mobibob

답변

0

내가 문제를 발견하고 코드의 다른 부분에서 좋은 행운과 코드 검사를 통해서였다 ("빛이 더 좋은 곳":

필자는 샘플 코드에 나열된 urlServiceRequest 개체의 HTTP 본문에 추가 된 JSON 문자열에 기록되는 매개 변수 사전을 가지고 있습니다. 내가 마침내 비틀 거리는 것은 urlServiceRequest 게시에 의해 내 buildRequest 메서드 내에서 참조되는 동안 매개 변수 컨테이너 (NSObject, NSDictionary가 아닌)가 ""이 아니므로 아마도 "autoreleased"이었을 것입니다.

불편한 메모리 관리로 인해 문제 해결에 어려움을 겪었습니다.

관련 문제