为了账号安全,请及时绑定邮箱和手机立即绑定

我可以从URL加载UIImage吗?

我可以从URL加载UIImage吗?

iOS
Helenr 2019-10-15 15:22:30
我有一个图像的URL(从UIImagePickerController中获得了它),但我的图像不再在内存中(该URL是从该应用程序的先前运行保存的)。我可以再次从URL重新加载UIImage吗?我看到UIImage有一个imageWithContentsOfFile:但是我有一个URL。我可以使用NSData的dataWithContentsOfURL:读取URL吗?编辑1基于@Daniel的答案,我尝试了以下代码,但它不起作用...NSLog(@"%s %@", __PRETTY_FUNCTION__, photoURL);     if (photoURL) {    NSURL* aURL = [NSURL URLWithString:photoURL];    NSData* data = [[NSData alloc] initWithContentsOfURL:aURL];    self.photoImage = [UIImage imageWithData:data];    [data release];}当我运行它时,控制台显示:-[PhotoBox willMoveToWindow:] file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG*** -[NSURL length]: unrecognized selector sent to instance 0x536fbe0*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL length]: unrecognized selector sent to instance 0x536fbe0'纵观调用堆栈,我打电话URLWithString,要求URLWithString:relativeToURL :,然后initWithString:relativeToURL :,然后_CFStringIsLegalURLString,然后CFStringGetLength,然后forwarding_prep_0,然后转发,然后- [NSObject的doesNotRecognizeSelector。任何想法为什么我的NSString(photoURL的地址为0x536fbe0)不响应长度?为什么说它不响应-[NSURL length]?是否不知道参数是NSString而不是NSURL?编辑2OK,用代码的唯一问题是字符串URL转换。如果我对字符串进行硬编码,则其他所有功能都可以正常工作。所以我的NSString出了点问题,如果我无法弄清楚,我想应该作为另一个问题来解决。插入此行(我从上面的控制台日志中粘贴了路径),就可以正常工作:photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";
查看完整描述

3 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您可以通过这种方式(同步但紧凑)来做到这一点:


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

更好的方法是使用Apple的LazyTableImages保留交互性。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 545 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信