ios - NSURLConnection如何获取剩余时间信息

标签 ios xcode

我在女巫中有一个表格单元格,我必须获得有关我正在下载的文件的更多信息,我设法获得了我需要的所有信息,但还有时间

这是我想做的一个例子,除了时间计算我都做了

获取文件大小:

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 

剩余时间:???

managing item download

问题:如何计算剩余时间??

最佳答案

我想您需要做的是处理 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/

相关文章:

ios - 32 位架构与 64 位架构主要在应用程序速度和内存管理方面有何不同?

swift - 让视频在 webView 中播放而不是全屏显示?

javascript - 获取 HTML 元素 - Obj-c

ios - 初始化子类中的属性?

ios - block 指针变量 'block' 在被 block 捕获时未初始化

iphone - becomeFirstResponder 不开火

ios - iOS 和 AirPlay 上的 Widevine 视频流

ios - 在我使用 instantiateViewController 函数的情况下在 View 之间传递数据

swift - Xcode:设置 UIControl 背景颜色在方向更改时重置

ios - 在 Xcode 6 中启用自动布局时,标签无法正确调整文本