나는 데이터베이스에서 동적 크기 레코드가 게으른로드 기능을 구축하기 위하여려고하고있다, 그래서 난목표 - C에서 웹 서비스 API에서 응답을받을 때까지 큐 실행을 유지하는 방법
- 처음으로 다음에이 일을하고있다 나는 20 레코드를 가져 와서
- 다음 사용자의 클릭에 따라 하나, 둘 또는 임의의 수의 레코드를 처리합니다. (사용자가 일부 서비스 호출이나 보류중인 작업을 마칠 때까지 대기하지 않아서 사용자가 목록에서 아무 것도 할 수 없습니다 스크롤 또는 클릭 등)
일관성을 유지하기 위해 먼저 몇 개의 레코드를 먼저 가져온 다음 사용자 레코드를 처리합니다. 여기서 처리 한 레코드는 실제 레코드 목록에서 제거되므로 데이터베이스 및 응용 프로그램의 레코드는 고정 목록이 아닙니다. .
는 나는 다음과 같은 방법으로 지금 당장하고있는 중이 야: 여기
-(void)viewDidLoad {
// Here i fetch first 20 records and then show in UITableView
// After user see the list he can click on any button to process that records
// And i am trying to queue that service call and maintain consistency in records
}
-(void)processOneRecord {
dispatch_queue_t queue = dispatch_queue_create("com.developer.serialqueue", DISPATCH_QUEUE_SERIAL);
dispatch_sync(queue, ^{
// To get further records service call
[self getMoreRecordsCompletionBlock:^{
[self ProcessOneRecordServiceCall];
}];
});
}
내가 processOneRecord 방법에서 세포
에 버튼마다 사용자가 클릭을 호출하는 방법 processOneRecord를 작성하고 난 완료 블록을 만듭니다 첫 번째 서비스 호출을 위해 두 번째 서비스 호출은 첫 번째 서비스가 모두 응답 한 후에 실행됩니다. 하지만 이제 사용자가 다른 셀의 버튼을 클릭하면 응용 프로그램에 두 번째 서비스 호출 응답이 반환 될 때까지 첫 번째 서비스 호출을 기다리고 싶습니다.
api 호출을 직렬 방식으로 수행 하시겠습니까? –
예, 직렬 방식으로 API 호출을 수행하고 싶습니다. 그래서 직렬 대기열을 만드는 이유는 무엇입니까? –
첫 번째 API 응답을받은 후 두 번째 API를 호출 하시겠습니까? 화가 난 너에게 대답 해. –