2011-03-30 66 views
0

Im在查找我的應用中的URL時驗證一些問題。
我的意圖是加載一個URL,同時查看是否存在其他網頁。Xcode:在加載之前驗證網址

負載http://mysite.com/folder1/1.pdf
驗證http://mysite.com/folder1/2.pdf
如果文件夾1/2.pdf存在,那麼加載它,否則驗證/folder2/1.pdf

到目前爲止IM加載的第一個PDF像這樣爲了能改變PDF號碼和文件夾:

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

感謝這麼多提前!

回答

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; 
} 

讓我知道它是否適合你!

(請記住,這是一個同步請求,不應在主線程上執行)

+0

喜: 告訴我,如果即時通訊做錯了什麼: ' - (無效)isValidURL:(NSURL *)網址 { 的NSLog(@ 「與站點%@ \ n啓動」,網址); NSURLRequest * req = [NSURLRequest requestWithURL:url]; NSHTTPURLResponse * res = nil; NSError * err = nil; [NSURLConnection sendSynchronousRequest:req returningResponse:&res error:&err]; BOOL errono = err!= nil && [res statusCode]!= 404; (@「給出錯誤?%@」,(errono?@「YES」:@「NO」)); }' }我allways得到迴應沒有「給出錯誤」日誌url是真的無效,並嘗試allso與一個有效的和 感謝 – Ponchotg 2011-03-30 16:28:54

+0

嗨,我再次改變了代碼在我的一點,而不是使用「布爾」我使用另一個變量,只是給了我的錯誤代碼和它的工作beautlifully! – Ponchotg 2011-03-30 16:37:21

+0

不要使用錯誤(在這段代碼中的錯誤)來確定是否發生錯誤,但調用方法的返回值(無或NO意味着錯誤)。不能保證err是零,即使該方法工作得很好。 – 2011-04-13 16:48:07

0

我不得不改變線路:

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

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

爲正確的Bool返回。錯誤應該保持爲零。

0

這種方法是不正確的,你應該避免同步呼叫,因爲他們阻止。蘋果說:簡單地嘗試等待迴應。