我正在調用一個枚舉整個數組,創建NSURL並調用返回JSON的NSURLSessionDataTask的方法。該循環通常運行約10次,但可以根據當天而變化。如何知道何時使用NSURLSessionDataTasks的for循環完成
我需要等待for循環和所有NSURLSessionDataTasks才能開始處理數據。
我很難搞清楚什麼時候所有的工作都完成了。任何人都可以推薦任何方式或邏輯來了解整個方法何時完成(用於循環和數據任務)?
-(void)findStationsByRoute{
for (NSString *stopID in self.allRoutes) {
NSString *urlString =[NSString stringWithFormat:@"http://truetime.csta.com/developer/api/v1/stopsbyroute?route=%@", stopID];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSessionDataTask *task = [self.session dataTaskWithRequest:request
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
if(httpResponse.statusCode == 200){
NSError *jsonError = [[NSError alloc]init];
NSDictionary *stopLocationDictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&jsonError];
NSArray *stopDirectionArray = [stopLocationDictionary objectForKey:@"direction"];
for (NSDictionary * _stopDictionary in stopDirectionArray) {
NSArray *stop = [_stopDictionary objectForKey:@"stop"];
[self.arrayOfStops addObject:stop];
}
}
}];
[task resume];
}
}
你的任務在completionHandler塊中完成。 – johnMa