我必须上传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提前感谢:)
发布于 2020-07-04 23:09:13
我理解您的意图--我也想这样做:您希望使用NSProgress对象本身,并简单地将其添加为顶级NSProgress对象的子级。
不幸的是,我可以从FirebaseStorage代码中看到这是不可能的:
- (FIRStorageTaskSnapshot *)snapshot {
@synchronized(self) {
NSProgress *progress = [NSProgress progressWithTotalUnitCount:self.progress.totalUnitCount];..。因为每次都会创建一个新的NSProgress对象,而不是重用现有的对象。我会在github上提交一个关于它的功能改进。
https://stackoverflow.com/questions/60324921
复制相似问题