1

면책 조항 : Obj-C 및 iOS (5, ARC 사용 가능)에 대해 매우 익숙합니다.어쨌든 안전한 캐스팅, EXC_BAD_ACCESS

NSURLConnectionDelegate 방법의 다음 구현은 내부의 NSLog 호출에서 EXC_BAD_ACCESS를 작성하는 경우 : 내가 찾아 관리로 지금까지의 EXC_BAD_ACCESS 대부분 인해 할당 문제, 잘못된 캐스팅으로 인해 발생

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 

    NSLog(@"Response %@", response); 
    if([response isKindOfClass:[NSHTTPURLResponse class]]) 
    { 
     NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*) response; 
     NSLog(@"HTTP status code %@", [httpResponse statusCode]); 
    } 
} 

, 및 나쁜 메모리 관리. 그 중 아무 것도 여기에 적용되지 않습니다 (희망). 사전에

감사합니다, 크리스

솔루션 다음 og의 문자열을 포맷에 Noobie 오류가 발생했습니다. 에 두 번째 NSLog 변경 :

NSLog(@"HTTP status code %i", [httpResponse statusCode]); 

답변

3

statusCodeNSObject 인스턴스에 NSInteger (A long 또는 int)이 아닌 포인터를 반환한다.

형식 지정자 %@NSObject 인수에 사용됩니다. 이 문제는 statusCode에서 반환 된 정수 값이 개체에 대한 포인터로 해석되고 전달 된 다음 메시지로 처리되거나 달리 런타임에 의해 개체에 대한 포인터로 처리 될 때 발생합니다. 객체 인수가 %@을 통해 인쇄되면 로거는 객체의 -[NSObject description] 결과를 사용합니다.

나중에 컴파일러 경고를 표시하고 생성 된 문제를 수정하여이 문제를 피할 수 있습니다.

+0

대단히 고마워요! – Chris

+0

@Chris 문제 없음! – justin