서버에서 일부 데이터를로드하지만 실제 데이터가로드되기 전에 루프 (for .. in ..)가 완료됩니다. 주 큐에서 구현 디스패치를 수정하거나 다른 것을 실수로 수정하는 방법은 무엇입니까?차단 기능 ObjC에서 만든 주 디스패치 주 대기열 작업을 수정하는 방법?
[ApiManager getCategoriesifSuccess:^{
[self.sectionArray addObjectsFromArray:[CategoryManager getCats]];
for (CategorySectionModel *mod in [CategoryManager getCats]) {
[self.arrayForBool addObject:@"YES"];
[ApiManager getCatalogItemsInCity:currentCity withSection:mod.uid
andStart:@"1" andLimit:@"20" ifSuccess:^{
[self.itemsArray setObject:[CatalogItemManager getItems] forKey:mod.uid];
[indicator stopAnimating];
[self.tableView reloadData];
NSLog(@"DONE WITH SECTION:%@", mod.title);
} orIfFailed:^(NSString *fail) {
NSLog(@"%@", fail);
}];
NSLog(@"LOOP");
};
} orIfFailed:^{
}];
그리고이 콘솔 반환하지만이 올바르지 않은 것 같다
2017-12-24 01:17:57.148355+0300 iOS[75679:1805296] LOOP
2017-12-24 01:17:57.149576+0300 iOS[75679:1805296] LOOP
2017-12-24 01:17:57.150786+0300 iOS[75679:1805296] LOOP
2017-12-24 01:17:57.152773+0300 iOS[75679:1805296] LOOP
2017-12-24 01:17:57.154727+0300 iOS[75679:1805296] LOOP
2017-12-24 01:17:57.156987+0300 iOS[75679:1805296] LOOP
2017-12-24 01:17:57.158840+0300 iOS[75679:1805296] LOOP
2017-12-24 01:17:57.981119+0300 iOS[75679:1805296] DONE WITH SECTION:First
2017-12-24 01:17:58.285569+0300 iOS[75679:1805296] DONE WITH SECTION:Second
2017-12-24 01:17:58.403725+0300 iOS[75679:1805296] DONE WITH SECTION:Third
2017-12-24 01:17:58.434170+0300 iOS[75679:1805296] DONE WITH SECTION:Fourth
2017-12-24 01:17:58.449970+0300 iOS[75679:1805296] DONE WITH SECTION:Fifth
2017-12-24 01:17:58.469519+0300 iOS[75679:1805296] DONE WITH SECTION:Sixth
2017-12-24 01:17:58.535116+0300 iOS[75679:1805296] DONE WITH SECTION:Seventh
질문은 Objective-C에 관한 것입니다. –
그것은 나에게 변화가없는 것처럼 보인다. –
@IlyaChikmarev - 아니요, 이것은 중요한 변화입니다. 우리는 모든 요청이 언제 완료되었는지 (어떤 시점에서 당신은 아마도 다른 행동을 유발할 것임을 알기 위해) 당신이 의도 한 것이라고 생각합니다. 디스패치 그룹을 사용하는 것이 올바른 방법입니다 (Alexander가 Objective-C 예제를 제공했으면 좋겠지 만). – Rob