我有一个for循环,目前循环4次。
//Add all the URLs from the server to the array
for (int i = 1; i <= 5; i++){
NSString *tempString = [[NSString alloc] initWithFormat : @"http://photostiubhart.comoj.com/GalleryImages/%dstiubhart1.jpg", i];
[myURLS addObject: [NSURL URLWithString:tempString]];
[tempString release];
}
正如您所看到的,URL中有一个数字,每个循环增加1,以创建下一个图像所在的新URL。但是,服务器上的图像数量不一定是4,可能更多甚至更少。我的问题是,有没有办法可以检查URL中是否存有图像?如果没有,打破循环并继续执行程序?
谢谢,
杰克
答案 0 :(得分:17)
以下是使用HTTP响应进行检查的想法
NSURLRequest *request;
NSURLResponse *response = nil;
NSError **error=nil;
NSData *data=[[NSData alloc] initWithData:[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:error]];
NSString* retVal = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// you can use retVal , ignore if you don't need.
NSInteger httpStatus = [((NSHTTPURLResponse *)response) statusCode];
NSLog(@"responsecode:%d", httpStatus);
// there will be various HTTP response code (status)
// you might concern with 404
if(httpStatus == 404)
{
// do your job
}
或
while(httpStatus == 200){
static int increment = 0;
increment++;
// check other URL yoururl/somthing/increment++
}
但会很慢。我的建议是,如果您使用自己的网络服务器,那么,您可以最初发送所有图像信息。我确定你在匿名或其他网站上做这个工作:) 如果它对你有帮助,请告诉我
答案 1 :(得分:-2)
以下是检查网址是否有效的最简单方法:
NSURL *URL = [NSURL URLWithString:@"www.your.unvalidated.yet/url"];
if ( [[UIApplication sharedApplication] canOpenURL:[URL absoluteURL]] )
{
//your link is ok
}