我必须将3个图像上传到Firebase。我想通过NSProgress监控所有三张图片的上传进度。
let currentUploadTask:StorageUploadTask = uploadPath.putData(data, metadata: nil) { (storageMetaData, error) in
if error != nil{
//TODO: Error handling
}else{
print("Upload Finished")
}
}
您通过currentUploadTask.snapshot.progress
访问NSProgress对象事实上,如果你运行currentUploadTask.snapshot.progress.fractionCompleted
,你会得到进度百分比
一旦我把所有的"Firebase进展"合并为一个大进展,事情就会分崩离析。
let progress:Progress = Progress(totalUnitCount: 3)
progress.addChild(currentUploadTask.snapshot.progress!, withPendingUnitCount: currentUploadTask.snapshot.progress!.totalUnitCount)
// Observe progress.fractionCompleted ----> always 0.0
提前感谢:(
我理解你想要做的事情——我也想这么做:你想要使用NSProgress
对象本身,并简单地将其添加为顶级NSProgress
对象的子对象。
不幸的是,我可以从FirebaseStorage
代码中看到这是不可能的:
- (FIRStorageTaskSnapshot *)snapshot {
@synchronized(self) {
NSProgress *progress = [NSProgress progressWithTotalUnitCount:self.progress.totalUnitCount];
因为每次都会生成一个新的NSProgress
对象,而不是重新使用现有的对象。我会在github上提交一个关于它的功能改进