2016-05-27 116 views
1

我使用afnetworking下载了图片并保存了名称[response suggestedFilename];我无法从路径中获取图像。如何从路径中获取图片

这里是下载方法:

- (void)startDownload:(OMImageTableViewCell *)cell { 

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; 

NSURL *url = [NSURL URLWithString:[_arrayImages objectAtIndex:cell.download.tag]]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60]; 

[cell.imagePic setImageWithURLRequest:request placeholderImage:cell.imagePic.image success:nil failure:nil]; 

NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     [cell.progressDownload setProgress:downloadProgress.fractionCompleted]; 
    }); 

} destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) { 

    _documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil]; 
    return [_documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]]; 

} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) { 
    NSData *data = [NSData dataWithContentsOfURL:filePath]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     cell.imagePic.image = [UIImage imageWithData:data]; 
    }); 

    NSLog(@"File downloaded to: %@", filePath); 
}]; 
[downloadTask resume]; 

} 
+0

你如何试图让图像?粘贴一些代码。 – kelin

回答

0

试试这个:

NSFileManager *fileManager = [NSFileManager defaultManager]; 
BOOL isFileExist = [fileManager fileExistsAtPath: filePath]; 
UIImage *image; 
if (isFileExist) { 
    image = [[UIImage alloc] initWithContentsOfFile:filePath]; 
} 
else { 
    // do something. 
} 
+0

它没有帮助。我想把它们放在uitableviewcell中以反映只下载的图片。 –

+0

也许你需要这个框架:https://github.com/rs/SDWebImage。只需#import UIImageView + WebCache.h头文件,并从tableView:cellForRowAtIndexPath:UITableViewDataSource方法中调用sd_setImageWithURL:placeholderImage:方法。从异步下载到缓存管理,一切都将为您处理。 – Patrick

+0

谢谢!)这是工作) –