webservice 호출을 보내고 위임을 통해 응답을 전달하는 클래스가 있습니다. 이제 view와 my webservice 클래스 사이에 캐싱 레이어를 추가하려고합니다. 이 새 클래스는 이전 호출의 콜백이 끝날 때까지 모든 호출이 지연되는 방식으로 호출을 직렬화해야합니다.웹 서비스 호출 및 콜백을 serialize
- (void)callWebserviceFunctionX {
dispatch_group_notify(self.serviceGroup, self.serialQueue, ^{
dispatch_group_enter(self.serviceGroup);
// call webservice
});
}
을 그리고 콜백 :
나는 GCD와 그것을 실현하기 위해 노력-(void)callbackFunctionXWithResponse:(id)response {
// do something
dispatch_group_leave(self.serviceGroup);
}
각 호출 및 dispatch_group_enter
및 dispatch_group_leave
과의 콜백 및 사용 이전 그룹에 대한 기다릴 그룹 아이디어 dispatch_group_notify
.
그러나이 방법은 의도 한대로 작동하지 않습니다. 더 좋은 방법이 있나요?
UPDATE :
은 내가 성공하지 않고 생각할 수 dispatch_group_enter
, dispatch_group_leave
, dispatch_group_notify
및 dispatch_group_async
의 모든 조합을 시도했다.
나는 또한 NSOperation
과 NSOperationQueue
을 생각했지만, 제대로 이해한다면, 모든 웹 서비스 호출에 대해 별도의 클래스를 작성해야 할 것입니다.
내가 아직 생각하지 못한 다른 대안이 있습니까?
감사합니다! 나는 첫 번째 이상이 답변을 선택했다. – cLar