我正在尝试在特定函数中实现异步 url 请求,我希望所有这些请求都完成然后执行特定操作,但该操作先于请求,即在请求完成之前调用它。
dispatch_queue_t fetchQ = dispatch_queue_create("Featured Doc Downloader", NULL);
dispatch_async(fetchQ, ^{
[self myAsyncMultipleURLRequestFunction];
dispatch_sync(dispatch_get_main_queue(), ^{
[self updateUIFunction];
});
});
-(void)myAsyncMultipleURLRequestFunction
{
for (int i=0; i<count; i++)
{
NSURLConnection *loginConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
}
}
现在 updateUIFunction 在 myAsyncMultipleURLRequestFunction 完成所有请求之前被调用。也尝试使用 NSOperaitonQueue 进行此操作,但无法执行我真正想要的操作。
[_operationQ addOperationWithBlock: ^ {
for (int i=0; i<count; i++)
{
NSURLConnection *loginConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
}
}
[[NSOperationQueue mainQueue] addOperationWithBlock: ^ {
// updating UI
[self updateUIFunction];
}];
}];
我知道这很简单,但我的时间不多了,感谢您的帮助。