iPhone:从NSURL加载图片时出现问题

时间:2011-06-13 10:14:13

标签: iphone objective-c cocoa-touch ios4 uiimageview

我有图像网址数组。我想将图像显示到UIImageView中。

现在我将URL转换为NSData,然后将其转换为UIImage,然后尝试将其加载到UIImageView中。

但是这需要很多时间。

有没有更好的方法可以更快更好地加载图像?

5 个答案:

答案 0 :(得分:3)

尽管这里的所有答案都告诉你在一行代码中执行此操作,但遗憾的是,URL连接速度或数据/图像解码没有任何区别。如果你想要一个更快的方式TYPE代码然后很好,但我会使用类别添加到UIImageView ....

@interface UIImageView (URL)

- (void)loadFromUrl:(NSString *)aUrl;

@end

@implementation UIImageView (URL)

- (void)loadFromUrl:(NSString *)aUrl {
  NSURL *url = [NSURL urlWithString:aUrl];
  NSData *data = [NSData dataWithContentsOfURL:url]
  UIImage *image = [UIImage imageWithData:data];

  if(image != nil) {
    [self setImage:image];
  }
}

@end

现在您可以包含标题并执行...

[myImageView loadFromUrl:@"http://myurl.com/image.jpg"];

更多类别(我将把这个添加到我的列表中!)检查here.这些都是我有用的,你可能会发现它们也很有用! :)

答案 1 :(得分:1)

在一个声明中使用所有内容。

UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:MyURL]]];

答案 2 :(得分:0)

[UIImage imageWithData:[NSData dataWithContentsOfURL:]]

答案 3 :(得分:0)

UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageUrl]];

答案 4 :(得分:0)

试试这个: -

图像是UIImage,imageView是UIImageView

NSData *receivedData = [NSData dataWithContentsOfURL:@"yoururl"];
self.image=nil;
UIImage *img = [[UIImage alloc] initWithData:receivedData ];
self.image = img;
[img release];
[self.imageView setImage:self.image];