我绝对是一个菜鸟,我真的需要你的帮助。我已经找了一个星期的解决方案,但我真的不知道该怎么办。 我正在尝试从Web服务下载一些图标(png图像),我已经在其他地方使用了代码,但仅用于1个图像,而不是用于多个图像。 在这种情况下,我应该下载15张图片。 在这两种情况下,使用AFImageRequestOperation或NSURLConnection sendAsynchronousRequest,我到达所有15个图像的结尾,但之后它开始出现一个我真的不知道如何解决的错误,因为它不应该出现在那里! ( * 由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSCFArray CGPointValue]:发送到实例的无法识别的选择器)。 如果我使用synchronousRequest下载15个图像则没有任何问题。 我做错了什么?这是我在这里或其他地方的错误吗? 非常感谢。
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:imagePath]];
AFImageRequestOperation *operation = [AFImageRequestOperation imageRequestOperationWithRequest:request imageProcessing``Block:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
// Save Image
[images_icon addObject:image ];
if ([images_icon count]==[allIcons count]) {
[self saveAllImagesToDisk];
}
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
NSLog(@"%@", [error localizedDescription]);
UIAlertView* allerta=[[UIAlertView alloc] initWithTitle:@"Attention"
message:@"Some problems here.."
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[allerta show];
}];
[operation start];
NSURL *url = [NSURL URLWithString:percorsoImmagine];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{NSLog(@"lungh %d, error=%@ mime=%@",[data length], error, response.MIMEType);
if ([data length] > 0 && error == nil && ([response.MIMEType isEqualToString:@"image/png"] || [response.MIMEType isEqualToString:@"image/jpeg"])){
[images_icon addObject:data ];
if ([images_icon count]==[allIcons count]) {
[self saveAllImagesToDisk];
}
}
}];
答案 0 :(得分:1)
当您使用AFImageRequestOperation
时,您要将UIImage
添加到images_icon
,但是当您使用NSURLConnection
时,您要将NSData
添加到images_icon
。我们需要[self saveAllImagesToDisk]
进一步调查。