사용자 개체가 array
입니다. 이 배열을 반복 할 필요가 있고 각 사용자마다 사용자 ID를 기반으로 데이터를 가져 오도록 요청해야합니다. 이 요청은 비동기 요청입니다 (동기화 할 수없는 이유로). 첫 번째 요청이 완료되면, 사용자는 요청을 시작했다 사람이 아닌이있다 참조, 그래서 I :NSArray를 통한 동시성 반복
for (User *user in self.userList) {
dispatch_group_enter(self.usersGroup);
[self.wrapper getUserDataWithId:user.userid completion:^(Owner *owner, NSError *error) {
user.owner = owner;
dispatch_group_leave(self.usersGroup);
}];
}
dispatch_group_notify(self.usersGroup, dispatch_get_main_queue(), ^{
// All requests have finished
// Stuff with updated userlist
});
주요 문제는 분명하다 편집을 할
: 여기에 전화를 dispatch_group 사용하여 편집 코드 올바른 연관성이 없습니다.
이 문제를 해결하기위한 쉽고 세련된 방법이 있습니까? 미리 감사드립니다!
같은이 함수를 호출하기 때문에 소유자는 오른쪽 객체에 설정됩니다. 모든 요청이 완료 될 때까지 어떻게 기다리고 계십니까? – Paulw11
블록은 id (문자열)에 대해서만 알고 있지만 사용자 객체에 대한 참조는 없습니다. 모든 요청이 완료 될 때까지 기다리는 dispatch_group을 시도했지만 리턴 된 배열에는 상관 데이터가 없습니다 –
디스패치 그룹을 사용하여 시도한 코드를 추가하면 사람들을 도울 수 있습니다. – CRD