Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Alamofire 4/Swift:进度处理程序不再提供ByteRead和TotalByteRead了?_Ios_Swift3_Alamofire - Fatal编程技术网

Ios Alamofire 4/Swift:进度处理程序不再提供ByteRead和TotalByteRead了?

Ios Alamofire 4/Swift:进度处理程序不再提供ByteRead和TotalByteRead了?,ios,swift3,alamofire,Ios,Swift3,Alamofire,最近,我正在尝试迁移到Swift 3,这意味着我还需要使用Alamofire 4 在Alamofire 3中,进度处理程序提供对ByteRead、TotalByteRead、TotalByteExpectedToRead的访问,但是在Alamofire 4中,处理程序似乎只有一个参数“progress”,它只允许我查看“fractionCompleted”。但是我需要为UILabel的文本使用bytesRead和totalBytesRead。我想知道我能得到这两个值吗?非常感谢 修改: 只是查看

最近,我正在尝试迁移到Swift 3,这意味着我还需要使用Alamofire 4

在Alamofire 3中,进度处理程序提供对ByteRead、TotalByteRead、TotalByteExpectedToRead的访问,但是在Alamofire 4中,处理程序似乎只有一个参数“progress”,它只允许我查看“fractionCompleted”。但是我需要为UILabel的文本使用bytesRead和totalBytesRead。我想知道我能得到这两个值吗?非常感谢

修改:


只是查看了Progress类,发现有
completedUnitCount
totalUnitCount
,它们似乎是TotalByteRead和ByteRead的替代方案。不确定我是否在正确的轨道上?

是的,如果您正在执行单个下载/上载任务(无子任务),您可以依靠
completedUnitCount
totalUnitCount

从Alamofire 4文件:

如果接收方NSProgress对象是“叶进程”(无子进程), 那么fractionCompleted通常是completedUnitCount/ 总数单位计数。如果接收器NSProgress有子进程,则 fractionCompleted将反映在中的子对象中取得的进展 添加到自己的completedUnitCount。当孩子们结束时 将更新父级的completedUnitCount


是的,如果您正在执行单个下载/上载任务(无子任务),则可以依靠
completedUnitCount
totalUnitCount

从Alamofire 4文件:

如果接收方NSProgress对象是“叶进程”(无子进程), 那么fractionCompleted通常是completedUnitCount/ 总数单位计数。如果接收器NSProgress有子进程,则 fractionCompleted将反映在中的子对象中取得的进展 添加到自己的completedUnitCount。当孩子们结束时 将更新父级的completedUnitCount


确切地说,
totalUnitCount
completedUnitCount
totalBytesExpectedToRead
具有相同的含义。
bytesRead
是(在每次迭代中)增加到总bytesRead值的值

现在添加的
fractionCompleted
Double
类型中已经是一个比率,因此它在用作进度条的值时非常有用

我已经测试了几个
Progress
值,因此这是代码(在大约600KB大小的文件上测试):

。。。输出如下(我从调试控制台选择了前3个迭代):


确切地说,
totalUnitCount
completedUnitCount
totalBytesExpectedToRead
具有相同的含义。
bytesRead
是(在每次迭代中)增加到总bytesRead值的值

现在添加的
fractionCompleted
Double
类型中已经是一个比率,因此它在用作进度条的值时非常有用

我已经测试了几个
Progress
值,因此这是代码(在大约600KB大小的文件上测试):

。。。输出如下(我从调试控制台选择了前3个迭代):


如何在进度条中使用它??如何在进度条中使用它??
.downloadProgress { progress in
     print("fractionCompleted: \(progress.fractionCompleted)")                
     print("completedUnit: \(progress.completedUnitCount)")
     print("totalUnitCount: \(progress.totalUnitCount)")
}
fractionCompleted: 0.104675046718523 
completedUnit: 65536 
totalUnitCount: 626090

fractionCompleted: 0.209350093437046 
completedUnit: 131072 
totalUnitCount: 626090

fractionCompleted: 0.314025140155569 
completedUnit: 196608 
totalUnitCount: 626090

...