我正在开发一个iOS应用程序,它包含一个静态sqlite数据库,一系列tableview和基于标签的详细信息视图,其中detailview中加载的第一个视图是一个可加载一系列图像的可跳过的imageView。
我已经使用此代码在本地查找图像,但我想让它从URL加载图像,或者如果没有可用的互联网连接则显示默认图像。
图像在数据库中被命名为(例如)image.jpg,我希望所有图像都从同一个URL目录加载(例如)http://www.someurl.com/images/
谢谢
- (UIImage *) imageAtIndex:(NSUInteger)index {
Image *currentImage = (Image *) [self.images objectAtIndex:index];
NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[currentImage filename] stringByDeletingPathExtension]] ofType:@"jpg"];
return [UIImage imageWithContentsOfFile:path];
}
答案 0 :(得分:0)
这个过程非常简单:
NSURLConnection
我建议您在下载图片时使用某种占位符,因为这可能需要一段时间。
不要打扰可达性;它不是100%可靠,而实际尝试下载是。
避免在后台线程或队列中执行此操作。 NSURLConnection
是开箱即用的,可以让您更轻松。如果你愿意,有很多第三方框架试图简化连接工作。
答案 1 :(得分:-1)
NSString *urlStr = [@"http://www.someurl.com/images/" stringByAppendingString:[currentImage filename]];
NSURL *url = [NSURL URLWithString:urlStr];
NSData *imageData = [NSData dataWithContentsOfURL:url];
UIImage *image = [[UIImage alloc] initWithData:data];
或类似的......
如果图像很大或互联网连接速度很慢,NSData初始化可能需要一些时间。考虑在后台线程中获取图像数据,或者使用一些现有框架,如SDWebImage