0

私のアプリはUIWebViewを使用してWebサイトをロードし、ユーザーがダウンロードリンクをクリックするとファイルをダウンロードし、ファイルのダウンロードが完了するまでアプリがフリーズし、その後アプリは通常に戻り、クラッシュせず、フリーズするだけです..どうすれば修正できますかこれ?

このコードを使用してダウンロードします

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{

if(navigationType == UIWebViewNavigationTypeLinkClicked) 
{
    NSURL *requestedURL = [request URL];

    // ...Check if the URL points to a file you're looking for...
    // Then load the file
    NSData *fileData = [[[NSData alloc] initWithContentsOfURL:requestedURL] autorelease];

    // Get the path to the App's Documents directory
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
    [fileData writeToFile:[NSString stringWithFormat:@"%@/%@", documentsDirectory, [requestedURL lastPathComponent]] atomically:YES];
} 
return YES;
}


- (NSString *)documentsDirectoryPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
return documentsDirectoryPath;
}
4

1 に答える 1

0

Apple iOS 5.1 ドキュメントの「URL ローディング システム プログラミング ガイド」を参照してください。非同期リクエストを設定する必要があります。URL ローディング システムのコード サンプルが多数あります。

于 2012-05-25T01:14:19.073 に答える