2011-04-05 37 views
0

我有一個問題,不知道如何解決它,
在我的應用程序我有,通過「文件夾1 /次數1.pdf」的Xcode:iPhone凍結調用「sendSynchronousRequest」當

加載PDF的出發一個UIWebView

加載本身工作得很好,但如果我在我的應用程序調用一個函數,檢查如果我有一個2.pdf在同一文件夾,它只是凍結,沒有錯誤沒有任何東西。

我調用該函數是:

- (void)isValidURL 
{ 

    int i = 1; 
    NSString *folder = @"folder1"; 
    NSURL *url = [NSURL URLWithString:[baseUrl stringByAppendingFormat:@" %@/%d.pdf",folder,i]]; 
    NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
    NSHTTPURLResponse *res = nil; 
    NSError *err = nil; 
    [NSURLConnection sendSynchronousRequest:req returningResponse:&res error:&err]; 
} 

任何幫助,不勝感激!

謝謝!

回答

3

同步請求在執行其數據傳輸時凍結UI,如果出現問題,可以無限期地掛起UI。

如果你只是檢查文件的本地文件夾,你絕對不需要使用NSURLRequest,這是嚴重的矯枉過正和工作的錯誤工具。

您想使用NSFileManagerfileExistsAtPath:方法。更容易。 NSURLRequest用於在整個網絡中查看。


編輯補充

如果你說該文件實際上是在網絡上,那麼你想打一個異步請求,以便用戶界面可以繼續運行,即使它的只是顯示一個旋轉活動指標。您可以使用NSURLConnectioninitWithRequest並設置代理等,或者您可以使用幾乎完成所有工作的優秀ASIHTTPRequest library

+0

你可以給我一個如何使用它的例子嗎? 在我的代碼中「baseulr」字符串實際上是我的網站,它在那裏尋找文件 – Ponchotg 2011-04-05 04:10:33

+0

@Ponchotg哦,所以你的請求真的是跨網絡? – 2011-04-05 04:37:54

+0

非常棒! tweeked和一點點代碼玩,但令人驚訝的! – Ponchotg 2011-04-05 08:40:54

1

您可以在Apple的TopPaid sample app中找到更好的示範。在這個項目中,他們解釋瞭如何通過發送異步請求來處理圖像下載而不鎖定用戶界面。在你的情況下,你可以下載文件並以PDF或其他任何你想要的形式保存到文件系統。

0

我覺得你可以很容易地在自己的異步函數中編寫代碼,它會花費很少的代碼。請參閱Apple dev關於異步URL請求的文檔。

相關問題