如何使用AFNetworking保存下载的进度条状态?

时间:2015-01-20 13:12:46

标签: ios objective-c xcode uitableview download

我使用Table View和Embed In导航制作一个自定义单元格并在其上设置一个进度条和一个下载按钮。我设置了多个URL并将所有URL保存在数组中,并在表视图中设置这些数组。我使用AFNetworking通过URL下载。我在NSObject类上设置所有方法,并在表视图单元格上调用该方法。

- (void)startDownload{
    if(!self.isDownloading){
        self.isDownloading = YES;
        NSURL *url = [NSURL URLWithString:self.DownloadString];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

        NSString *fullPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[url lastPathComponent]];

        [operation setOutputStream:[NSOutputStream outputStreamToFileAtPath:fullPath append:NO]];

        [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {

            self.Progress = (float)((float)totalBytesRead/(float)totalBytesExpectedToRead);
            NSLog(@"progress: %f",self.Progress);
        }];

        [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

            NSLog(@"RES: %@", [[[operation response] allHeaderFields] description]);

            NSError *error;
            NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:&error];
            if (error) {
                NSLog(@"ERR: %@", [error description]);
            } else {
                // NSNumber *fileSizeNumber = [fileAttributes objectForKey:NSFileSize];
                 //   long long fileSize = [fileSizeNumber longLongValue];
            }
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"ERR: %@", [error description]);
        }];
        [operation start];
    }
}

现在我有一个问题,如果下载开始,我按下后退按钮再次来到表视图进度栏再次“0”下载按钮再次可用。 我希望在单元格出列时保存进度条的状态,然后返回导航或返回。我想保留我的下载状态和进度条状态。 当我下载一个大文件时,任何一个人知道如何保存我的进度条的状态当我回来时,进度条在tableview单元格上运行进度状态保存。

0 个答案:

没有答案