首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS下载并在应用程序中保存图像

iOS下载并在应用程序中保存图像
EN

Stack Overflow用户
提问于 2011-06-05 01:01:58
回答 4查看 140.8K关注 0票数 79

我可以从网站下载图片并将其永久保存在我的应用程序中吗?我真的不知道,但它会成为我的应用程序的一个很好的功能。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-05 01:11:59

Stack Overflow用户

发布于 2011-06-05 01:14:27

这是主要的概念。玩得开心;)

代码语言:javascript
复制
NSURL *url = [NSURL URLWithString:@"http://example.com/yourImage.png"];
NSData *data = [NSData dataWithContentsOfURL:url];
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
path = [path stringByAppendingString:@"/yourLocalImage.png"];
[data writeToFile:path atomically:YES];
票数 13
EN

Stack Overflow用户

发布于 2015-05-13 18:27:25

正如其他人所说,在许多情况下,您应该在后台线程中下载图片,而不会阻塞用户界面

在这种情况下,我最喜欢的解决方案是使用块的方便方法,就像这样:(credit -> iOS: How To Download Images Asynchronously (And Make Your UITableView Scroll Fast))

代码语言:javascript
复制
- (void)downloadImageWithURL:(NSURL *)url completionBlock:(void (^)(BOOL succeeded, UIImage *image))completionBlock
{
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
                               if ( !error )
                               {
                                   UIImage *image = [[UIImage alloc] initWithData:data];
                                   completionBlock(YES,image);
                               } else{
                                   completionBlock(NO,nil);
                               }
                           }];
}

并将其命名为

代码语言:javascript
复制
NSURL *imageUrl = //...

[[MyUtilManager sharedInstance] downloadImageWithURL:[NSURL URLWithString:imageURL] completionBlock:^(BOOL succeeded, UIImage *image) {
    //Here you can save the image permanently, update UI and do what you want...
}];
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6238139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档