【发布时间】:2017-04-13 22:15:41
【问题描述】:
在用户登录后我的第一个视图控制器中,可以快速检查用户是否已将自定义图像上传到他的帐户。 (如果有,用户的个人资料数据中有一个 URL。)
这些图像在我的代码中正确下载,并且它们显示得很漂亮。当没有自定义用户图像时出现问题,并且 VC 尝试将相同的 UIImageView 设置为默认图片(在 xcassets 中)。据我所知,图片正在加载到捆绑包中,它是一个有效的 PNG 文件。
这里是设置图片的sn-p。如果未找到自定义 URL,我将 URL 参数字符串设置为“nil”。
-(void) setImageWithUrl: (NSString *) Url Imageview: (UIImageView *) image {
if (Url.length > 4) {
NSURL *url = [NSURL URLWithString:Url];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *Profileimage = [UIImage imageWithData:data];
[image setImage:Profileimage];
}
else {
UIImage *Profileimage = [UIImage imageNamed:@"DefaultPicture"];
[image setImage:Profileimage];
}
}
这个让我发疯了,所以欢迎所有奇怪的想法。 :-)
如果您希望我发布您认为可能是影响因素的任何其他代码部分,请告诉我。
【问题讨论】:
-
您是否设置了断点并在调试中单步执行?如果是这样,流实际上是否在
if (Url.length > 4)失败并落入else?如果是这样,Profileimage是否从[UIImage imageNamed:@"DefaultPicture"];获得有效图像?找出哪个问题的答案为“否”,您应该找到解决方案。 -
@DonMag 标准的调试练习很成功。事实证明,由于数据库有时会在用户配置文件中放入一些“额外垃圾”,Url.length 总是大于 4。在代码中解决了这个问题。
标签: ios objective-c uiimageview uiimage