无法使用设备图像URL在设备中加载图像?

时间:2016-03-15 12:53:35

标签: objective-c image ios9 photosframework

我有来自照片库的所选图片列表。之后,我通过这种方式检索所有图像URL。

  PHImageManager *manager = [PHImageManager defaultManager];
 [manager requestImageForAsset:asset
                           targetSize:PHImageManagerMaximumSize
                          contentMode:PHImageContentModeDefault
                              options:self.requestOptions
                        resultHandler:^void(UIImage *image, NSDictionary *info) {

                            NSLog(@"%@",[info valueForKey:@"PHImageFileURLKey"]);
                            NSURL *imageURL = (NSURL *)[info valueForKey:@"PHImageFileURLKey"];
                            NSData *imgData = [NSData dataWithContentsOfURL:imageURL];
                            UIImage *img = [UIImage imageWithData:imgData];                                  
                        }];

现在的问题是它在模拟器中完美加载图像但是当我在设备中运行它无法加载images.i得到了NSData。 请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您可能想尝试

NSData *myData = [NSData dataWithContentsOfFile:imageURL];  

而不是

NSData *myData = [NSData dataWithContentsOfURL:imageURL];  

答案 1 :(得分:0)

我认为以下一行会产生问题。

NSURL *imageURL = [Albumimages objectAtIndex:i];

如果您要获得所需的确切网址,请先在此处查看,然后将其复制并在Mac浏览器上运行。如果没有,那么您需要以下列方式创建NSURL

NSString* stringURL = [NSString stringWithFormat:@"http://www.google.com"];
NSString* webStringURL = [stringURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL* url = [NSURL URLWithString:webStringURL];

希望这可能会有所帮助。