我在女巫中有一个表格单元格,我必须获得有关我正在下载的文件的更多信息,我设法获得了我需要的所有信息,但还有时间
这是我想做的一个例子,除了时间计算我都做了
获取文件大小:
fileSize = [NSNumber numberWithLongLong:[response expectedContentLength]]/(1024*1024);
已下载:
[_responseData length]/(1024*1024)
速度:
double speed = [_responseData length] / ([NSDate timeIntervalSinceReferenceDate] - start);
其中 start 也是一个 [NSDate timeIntervalSinceReferenceDate]
设置在
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
剩余时间:???
问题:如何计算剩余时间??
最佳答案
我想您需要做的是处理 connection:didReceiveData:
委托(delegate)方法。
@property (atomic, strong) NSDate *lastCheckDate;
@property (atomic, strong) NSDate *startDate;
@property (atomic, strong) NSNumber *fileSize;
@property (atomic, strong) NSNumber *sizeLeft;
- (void) connection:(NSURLConnection *) connection didReceiveData:(NSData *) data
{
NSDate *now = [NSDate date];
double dt = [now timeIntervalSinceDate:_lastCheckDate]; // time since last check
self.lastCheckDate = now;
double db = [data length]; // bytes received
double speed = db / dt;
self.sizeLeft = self.sizeLeft - [NSNumber numberWithDouble:db];
double averageSpeed = [(_fileSize - _sizeLeft) doubleValue] / [now timeIntervalSinceDate:_startDate];
// time left, based on current speed
double timeLeftCurrent = [sizeLeft doubleValue] / speed;
// time left, based on average speed
double timeLeftAverage = [sizeLeft doubleValue] / averageSpeed;
}
关于ios - NSURLConnection如何获取剩余时间信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25501439/