Ход проверки AFNetworking

Я использую структуру AFNetworking для загрузки файлов и записи их в локальную файловую систему.

Но поскольку файлы могут быть довольно большими, я хочу добавить UIProgressView, но я не могу найти какой-либо метод, который обновляется с прогрессом.

Я вижу людей, говорящих о setProgressBlock, но не могу найти никакой информации об этом в документах: http://afnetworking.org/Documentation/Classes/AFHTTPRequestOperation.html

Есть ли метод, который делает это? Я просто использую AFHTTPRequestOperation для загрузки файлов.


person woutr_be    schedule 16.08.2012    source источник


Ответы (2)


Метод setDownloadProgressBlock является частью AFURLConnectionOperation, от которого наследуется AFHTTPRequestOperation — поэтому вы не видите его в документации AFHTTPRequestOperation. Документация, которую вы ищете, находится здесь:

http://cocoadocs.org/docsets/AFNetworking/1.3.1/Classes/AFURLConnectionOperation.html< /а>

person lxt    schedule 16.08.2012
comment
Спасибо, они изменили свои ссылки на документацию с тех пор, как я написал (в то время Cocoadocs не существовало). Я изменил ответ. - person lxt; 21.06.2013

обратитесь к следующему коду. это загрузка файла с использованием кода AFNetworking.

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://blahblah.com/blahblah.mp3"]];
AFURLConnectionOperation *operation =   [[AFHTTPRequestOperation alloc] initWithRequest:request];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [paths objectAtIndex:0] stringByAppendingPathComponent:@"blahblah.mp3"];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:filePath append:NO];
[operation setDownloadProgressBlock:^(NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead)
{
    myProgressView.progress = (float)totalBytesRead / totalBytesExpectedToRead;
}];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
{
    NSLog(@"downloadComplete!");
}];
[operation start];
person bitmapdata.com    schedule 16.08.2012
comment
Примечание: переменная bytesRead является NSInteger. Спасибо! - person Lolloz89; 07.03.2013