Xcode:加载前验证URL

时间:2011-03-30 03:27:56

标签: objective-c cocoa-touch xcode

我遇到了一些麻烦,找到了一种在我的应用上验证网址的方法 我的目的是加载一个URL,同时查看是否存在其他网页。

加载http://mysite.com/folder1/1.pdf
验证http://mysite.com/folder1/2.pdf
如果folder1 / 2.pdf存在,则加载它,否则验证/folder2/1.pdf

到目前为止我正在加载这样的第一个pdf,以便能够更改pdf编号和文件夹:

int numpag = 1;
NSString *baseUrl =@"http://www.cronica.com.mx/iphone/pdf_iphone/";
[pdfView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[baseUrl stringByAppendingFormat:@"folder1/%d.pdf", numpag]]]];

提前非常感谢!

3 个答案:

答案 0 :(得分:4)

怎么样:

+ (BOOL)isValidURL:(NSURL*)url
{
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    NSHTTPURLResponse *res = nil;
    NSError *err = nil;
    [NSURLConnection sendSynchronousRequest:req returningResponse:&res error:&err];
    return err!=nil && [res statusCode]!=404;
}

让我知道它是否适合您!

(请记住,这是同步请求,不应在主线程上执行)

答案 1 :(得分:0)

我不得不换行:

return err!=nil && [res statusCode]!=404;

return err==nil && [res statusCode]!=404;

正确的Bool回归。错误应保持为零。

答案 2 :(得分:0)

这种方法不正确,你应该避免同步调用,因为它们是阻塞的。 Apple说:只需等待等待响应即可。