연결에 실패 할 때 내 응용 프로그램의 동작을 테스트하려고합니다. Wi-Fi가 꺼진 iPad를 테스트 중입니다.RestKit 연결 실패 대리인
CPL[7713:6203] E restkit.network:RKRequest.m:545 Failed to send request to https://xxxxxxxx/APNS_WebService/rest/operations/initializeDevice?deviceID=c4a17f855d3cc824b174b71908480d4e505ebfb221cb4643da9270a07344c367 due to unreachable network.
문제는 내가 대리인 콜백 메소드에서이 상황을 처리하고 싶다고하지만, 위임 방법 중 어느 것도 호출되지되고있다 : Restkit 웹 서비스 호출을 시도 할 때, 나는 다음과 같은 오류가 발생합니다. 요청에 대한 위임자를 설정하고 requestDidFailLoadWithError, requestDidCancelLoad, requestDidTimeout 및 objectLoaderDidFailWithError를 구현했습니다. 이 중 아무 것도 호출되지 않습니다.
왜 내 대리인이 호출되지 않습니까?
편집 : RKRequest.m 내부에 중단 점을 설정 한 후, 나는 다음 줄이 실행되는 사실에 있음을 참조하십시오
[self performSelector:@selector(didFailLoadWithError:) withObject:error afterDelay:0];
그러나, 내 대리자 메서드가 호출되지 않아요.
는 여기에 내가 위임 설정 어디 :
request = [client requestWithResourcePath:[NSString stringWithFormat:@"/initializeDevice?deviceID=%@",deviceID]];
request.delegate=self;
[request sendAsynchronously];
편집 2 : 사실, 위의 게시 그렇지 않은 것을 제외하고 그냥 RKRequest에서 다른 방법을 호출 RKRequest.m의 라인. didFailLoadWithError에 중단 점을 넣으면이 코드에 도달하지 못했습니다. 그게 효과가없는 이유를 모르겠습니다.
performSelector를 일반적인 메서드 호출로 변경하면 표면에 내가 원하는 동작을 제공합니다. 이 일이 무너질 건가요? performSelector가 같은 클래스의 메서드를 호출하는 데 왜 사용되는지 잘 모르겠다.
편집 3 : 요청으로, 여기 내 대리자 메서드입니다 :
-(void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error{
NSLog(error.domain);
NSLog([NSString stringWithFormat:@"%d",error.code]);
NSLog(error.localizedDescription);
NSLog(error.localizedFailureReason);
[request reset];
[request send];
}
감사합니다. –
제 편집을 참조하십시오. –
위임자 메소드가 호출되지 않은 이유를 정확히 알기 위해 왜 didFailLoadWithError :'를 실행하지 않습니까?당신이 선택한 캐시 정책에 따라 달라질 수 있습니다 ... – sergio