ASIHTTPRequest實現斷點下載

- (IBAction)URLFetchWithProgress:(id)sender { [startButton setTitle:@"Stop" forState:UIControlStateNormal]; [startButton addTarget:self action:@selector(stopURLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside]; NSString*tempFile = [[[[NSBundle mainBundle] bundlePath]stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"MemexTrails_1.0b1.zip.download"]; if ([[NSFileManager defaultManager] fileExistsAtPath:tempFile]) { [[NSFileManager defaultManager] removeItemAtPath:tempFile error:nil]; } [self resumeURLFetchWithProgress:self]; } - (IBAction)stopURLFetchWithProgress:(id)sender { networkQueue = [[ASINetworkQueue alloc] init]; timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:selfselector:@selector(updateBandwidthUsageIndicator) userInfo:nil repeats:YES]; timer = nil; [startButton setTitle:@"Stop" forState:UIControlStateNormal]; [startButton addTarget:self action:@selector(URLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside]; [networkQueue cancelAllOperations]; [resumeButton setEnabled:YES]; } - (IBAction)resumeURLFetchWithProgress:(id)sender { [resumeButton setEnabled:NO]; [startButton setTitle:@"Start" forState:UIControlStateNormal]; [startButton addTarget:self action:@selector(stopURLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside]; [networkQueue cancelAllOperations]; [networkQueue setShowAccurateProgress:YES]; [networkQueue setDownloadProgressDelegate:progressIndicator]; [networkQueue setDelegate:self]; [networkQueue setRequestDidFinishSelector:@selector(URLFetchWithProgressComplete:)]; ASIHTTPRequest*request=[[[ASIHTTPRequest alloc] initWithURL:[NSURLURLWithString:@"http://9991.net/blog/mp3/2.mp3"]] autorelease]; [request setDownloadDestinationPath:[[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"MemexTrails_1.0b1.mp3"]]; [request setTemporaryFileDownloadPath:[[[[NSBundle mainBundle] bundlePath]stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"MemexTrails_1.0b1.zip.down"]]; [request setAllowResumeForFileDownloads:YES]; [networkQueue addOperation:request]; [networkQueue go]; } - (void)URLFetchWithProgressComplete:(ASIHTTPRequest *)request { if ([request error]) { fileLocation.text=[NSString stringWithFormat:@"An error occurred:%@",[[[requesterror] userInfo] objectForKey:@"Title"]]; } else { fileLocation.text=[NSString stringWithFormat:@"File downloaded to %@",[requestdownloadDestinationPath]]; } [startButton setTitle:@"Start" forState:UIControlStateNormal]; [startButton addTarget:self action:@selector(URLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside]; } - (IBAction)throttleBandwidth:(id)sender { if ([(UIButton *)sender state] ==YES) { [ASIHTTPRequest setMaxBandwidthPerSecond:ASIWWANBandwidthThrottleAmount]; } else { [ASIHTTPRequest setMaxBandwidthPerSecond:]; } }
相關文章
相關標籤/搜索