如何检查image-url-string是否返回有效的网址? 我在谈论这个网址http://rscagen3t004-dev.tdlinx.dev/sites/all/themes/rsca/resources/images/RSCA_logo.png
您可以看到点击链接时网页不可用。目前我正在我的代码中执行此操作:
if([meta.met_thumb hasPrefix:@"http://"]){
imgURL = meta.met_thumb;
NSData *walImage = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imgURL]];
NSLog(@"walImage is %@",walImage);
float newHeight2;
if (walImage != nil) {
UIImage *imgIcon = [UIImage imageWithData:walImage];
if (imgIcon != nil) {
float width = imgIcon.size.width;
float heigt = imgIcon.size.height;
if(heigt < 240){
float newWidth = (heigt / 240);
float newWidht2 = (newWidth/ width);
//[imgNews setFrame:CGRectMake(40,y, newWidht2,heigt)];
}
float newHeight = (width / 240);
newHeight2 = heigt/ newHeight;
}else{
newHeight2 = 240;
}
}else{
newHeight2 = 240;
}
height = [self heightForStatus:attString] + y + newHeight2 + 70;
}else{
height = [self heightForStatus:attString] + y + 240 + 70;
}
但是执行[[NSData alloc] init]
的行需要很长时间。
有人可以帮我吗?
提前致谢!
答案 0 :(得分:0)
使用alloc/init
执行行的长时间延迟可能是由于服务器响应缓慢造成的。我刚刚测试过,30秒后我既没有图像也没有错误页面。
检测&#34;有效网址&#34;你应该检查服务器响应。它应该给出正确的响应404 =未找到。另请参阅http响应代码http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
所以你应该做的就是检查你得到的是404还是2xx的响应。然后决定是否有数据并创建图像。但是,如果没有收到图像数据而是网页,那可能会出错。