मैं एकाधिक कोड डाउनलोड करने और डिस्क पर लिखने के लिए एक सरणी के माध्यम से लूप को इस कोड का उपयोग कर रहा हूं।कई फाइलें डाउनलोड करने के लिए AFNetworking
-(void)download
{
//set url paths
for (NSString *filename in syncArray)
{
NSString *urlpath = [NSString stringWithFormat:@"http://foo.bar/photos/%@", filename];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlpath]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:filename];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Successfully downloaded file to %@", path);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
[operation start];
लेकिन समस्या यह बाद प्रत्येक फ़ाइल से किया जाता है सफलता ब्लॉक, (जो यह होना चाहिए) कहता है, लेकिन मैं सिर्फ एक अंतिम कॉल बैक की जरूरत है कुछ डेटा को फिर से लोड और एक प्रगति HUD समाप्त करने के लिए है।
सही दिशा में कोई भी पॉइंटर्स बहुत अच्छा होगा।
अरे, आप इस समारोह को कहां कॉल करते हैं? AppDelegate में या एक विशेष नियंत्रक में? इसके अलावा, यदि डाउनलोड समाप्त होने से पहले ऐप छोड़ दिया जाता है तो क्या होता है? धन्यवाद – manishKungwani