0

私はココアプログラミングが初めてで、バイナリファイルをURLからディスクにダウンロードしようとしています。残念ながら、メソッドは何らかの理由でコールバックされません。downloadFile への呼び出しは、[self performSelectorOnBackground] などを介して開始されたバックグラウンド スレッドから行われます。

注 メイン UI スレッドから downloadFile を呼び出すと、動作しているように見えますが、バックグラウンド スレッドはどうなっていますか?

-(BOOL) downloadFile
{
        BOOL downloadStarted = NO;
        // Create the request.
    NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:versionLocation]
                cachePolicy:NSURLRequestUseProtocolCachePolicy
                timeoutInterval:60.0];

    // Create the connection with the request and start loading the data.
        NSURLDownload  *theDownload = [[NSURLDownload alloc] initWithRequest:theRequest
                                                                                                                                delegate:self];
    if (theDownload) {
        // Set the destination file.
        [theDownload setDestination:@"/tmp" allowOverwrite:YES];
                downloadStarted = YES;
    } else {
        // inform the user that the download failed.
                downloadStarted = NO;
    }

        return downloadStarted;

}


- (void)download:(NSURLDownload *)download didFailWithError:(NSError *)error
{
    // Release the connection.
    [download release];

    // Inform the user.
    NSLog(@"Download failed! Error - %@ %@",
          [error localizedDescription],
          [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}

- (void)downloadDidFinish:(NSURLDownload *)download
{
    // Release the connection.
    [download release];

    // Do something with the data.
    NSLog(@"%@",@"downloadDidFinish");
}
4

1 に答える 1