2011-10-30 2 views
0

2 가지 간단한 질문이 있습니다. 2 개의 매핑 요청이 서로 가까이 연속적으로 전송되었습니다 (MAIN 스레드에 의해 ).RestKit. RKObjectManager 및 queing

먼저 요청 : [[RKObjectManager sharedManager]가 loadObjectsAtResourcePath : @ "SomePathToServer"대표 : 자기]

두 번째 요청 :

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"SomeOTHERpathtoServer" delegate:self]; 

내 질문은 : 그들이 자동으로 객체에서 대기중인 매니저?

내가 지금 실행할 때 첫 번째 요청은 webservice와의 다소 큰 동기화 통신을 트리거합니다. 두 번째 요청은 그 통신의 중심에서 시작되었으며 RestKit에 의해 처리/수신되지 않습니다.

내 앱을 다시 실행하면 내 코드가 동기화가 완료되었음을 감지하고 두 번째 요청이 처리됩니다. - 데이터가 수신되고 매핑됩니다.

관리되는 요청을 큐에 수동으로 추가해야합니까?

나는 그물에 대해 아무 것도 발견하지 못했습니다. 수동으로해야한다면 대기열에 넣어 둘 수 있습니다. 예를 들어 가이드에 대한 안내 또는 지침이 있는지 궁금합니다. 간단한 요청에 대한 큐잉 예제 만 찾았습니다. 이 필요한 경우 큐에 첫 번째 및 두 번째 요청을 넣는 방법에 대해서는 아이디어가 없습니다. 도움을 많이 받으실 수 있습니다. 토마스

+0

RestKit는 기본적으로 대기열에 요청을한다. 요청을 동 기적으로 처리 하시겠습니까? 큐는 기본적으로 동시에 최대 5 개의 요청을 처리 할 수 ​​있다고 생각합니다. 따라서 2 개만있는 경우 대기열에 주목하지 못할 수도 있습니다. – mja

+0

아니요, 이들이 동기식 일 필요는 없습니다. 그러나 restkit 그때 홍보 않습니다. 기본 비동기식 요청을 만드시겠습니까? 위에서 설명한 것처럼 첫 번째 요청에 대한 응답 만 처리되므로 두 번째 요청에 대한 응답은 restkit에서 결코 감지되지 않으므로 다소 이상합니다. – Thomas

+0

RKObjectLoaderDelegate의'- (void) objectLoader : (RKObjectLoader *) objectLoader didFailWithError : (NSError *) 오류'또는'objectLoaderDidLoadUnexpectedResponse :'요청을 어딘가에 붙잡 으면 구현할 수 있습니까? 로그에서 비정상적인 것을 발견 했습니까? 내가 설명하는 것처럼 하나의 프로젝트에서 RestKit을 사용합니다. 첫 번째 작업이 끝나기 전에 두 번째 요청을 시작합니다. – mja

답변

2

RKRequestQueue이 작업을 수행합니다. 당신은 큐에 추가 할 수 있습니다 RKObjectLoader 또는 여기

RKRequest 은 예입니다

RKRequestQueue *queue =[[RKRequestQueue alloc] init]; 
    queue.delegate = self; 
    queue.concurrentRequestsLimit = 1; 
    queue.showsNetworkActivityIndicatorWhenBusy= YES; 

    [queue addRequest:[[RKObjectManager sharedManager] objectLoaderWithResourcePath:@"resource" delegate:self]]; 
    [queue addRequest:[RKClient sharedClient] requestWithResourcePath:@"Another Resource "delegate: self]]; 

    [queue start]; 
관련 문제