我正在实现一个下载图像并将它们保存在应用程序数据库中的代码,
我有一个对象数组,每个对象都包含图像 url 和一些其他信息。要下载图像,我使用类库 AFImageRequestOperation.h AFNetworking。
我的代码下载数据并将其保存在数据库中,但需要通知用户下载了哪个图像,例如:如果我有一个包含 5 个对象的数组(在每个对象的上方引用),则必须下载相同的顺序是在数组中,但由于 AFImageRequestOperation 使得异步下载第 4 项可以在第一项之前下载。
简而言之,我想拥有控制权,并且只有在上一个下载完成后才发布下一个下载。
我有一个 for 贯穿对象数组并为每个位置调用一个函数,该函数具有以下代码:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[arrImagem valueForKey:@"urlimagem"]]];
AFImageRequestOperation *operation = [AFImageRequestOperation imageRequestOperationWithRequest:request imageProcessingBlock:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){
Imagens *imagem = (Imagens *)[NSEntityDescription insertNewObjectForEntityForName:@"IMAGENS" inManagedObjectContext:managedObjectContext];
// Save Image
NSData *imageData = UIImageJPEGRepresentation(image, 90);
[imagem setCategoria:cat];
[imagem setTitulo:[arrImagem valueForKey:@"titulo"]];
[imagem setDescricao:[arrImagem valueForKey:@"descricao"]];
[imagem setImagem:imageData];
NSError *error;
if(![managedObjectContext save:&error]){
NSLog(@"houve um erro muito grave");
//return false;
}else{
NSLog(@"Salvou imagem");
}
}failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){
NSLog(@"%@", [error localizedDescription]);
}];
[operation start];
我不知道我的问题是否很清楚,但基本上我的问题类似于此链接