Вы можете установить блокировку выполнения для операции AFNetworking
аналогично операции AFDownloadRequestOperation.
Из этого блока вы можете получить ожидаемую длину контента и размер пакетов, которые вы получаете, из которых вы можете рассчитать время, необходимое для полной работы (рассчитываемая скорость сети останется прежней)
Но это нельзя сделать до получения данных от веб-службы (например, вы получаете 200 байт за 1 или 0,1 секунды), затем разделите полученный пакет на время и получите скорость сети, а затем рассчитайте время для полной загрузки данных (операция веб-службы)
[operation setProgressiveDownloadProgressBlock:^(AFDownloadRequestOperation *operation, NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpected, long long totalBytesReadForFile, long long totalBytesExpectedToReadForFile) {
NSLog(@"Operation%i: bytesRead: %ld", 1, (long)bytesRead);
NSLog(@"Operation%i: totalBytesRead: %lld", 1, totalBytesRead);
NSLog(@"Operation%i: totalBytesExpected: %lld", 1, totalBytesExpected);
NSLog(@"Operation%i: totalBytesReadForFile: %lld", 1, totalBytesReadForFile);
NSLog(@"Operation%i: totalBytesExpectedToReadForFile: %lld", 1, totalBytesExpectedToReadForFile);
}
}];
person
Dinesh Kaushik
schedule
13.12.2013