作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想在将 iOS 应用程序中录制的视频文件上传到 Firebase 时向用户显示进度条,因此我使用了 SDK 的 observeStatus
功能:
// Create a root reference
FIRStorageReference *storageRef = [_storage reference];
// Create a reference to the video
FIRStorageReference *videoRef = [storageRef child:uuidString];
// Upload the file
FIRStorageUploadTask* uploadTask = [videoRef putFile:url metadata:nil];
[uploadTask observeStatus:FIRStorageTaskStatusProgress handler:^(FIRStorageTaskSnapshot *snapshot) {
// A progress event occurred
double percentComplete = 100.0 * (snapshot.progress.completedUnitCount) / (snapshot.progress.totalUnitCount);
NSLog(@"Video with ID %d recording upload progress: %f, completed unit count %lld, total unit count %lld", video.videoId, percentComplete, snapshot.progress.completedUnitCount, snapshot.progress.totalUnitCount);
}];
但是,“总单元数”似乎始终为 0,这意味着计算的完成百分比在整个除以 0 的情况下有点疯狂:
Video with ID 3 recording upload progress: inf, completed unit count 163922, total unit count 0
我做错了什么吗?按照描述的文档进行操作 here .
[也在 Swift 中复制]
最佳答案
我们实际上正确地创建了 NSProgress
,并为内存中的上传适本地更新它 (putData
),但是没有获取文件上传的文件大小 (putFile
) 因为显然我没有发现文件属性/它们并不总是正确的。
我很快就会进行修复,现在您可以使用 NSFileManager.defaultManager().attributesOfItemAtPath(url.path!)[NSFileSize]!.longLongValue
解决方法来获取文件大小:)
编辑(2016 年 10 月 10 日):这个问题已经解决,如果您使用最新版本的 Firebase 存储,您将不会遇到这个问题:)
关于ios - 使用 iOS SDK 将文件上传到 Firebase 时总上传计数为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37600979/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!