我尝试添加字节的字节,以获得将从互联网上检索的照片占用的空间.
我有以下的代码,它得到的大小以字节为单位对每个ID array的id
var diskSpace:Int64 = 0
for var i = 0; i < array.count; i++ {
let id = array[i]
let urlString = "urlToFetchData"
if let url = NSURL(string: urlString) {
if let data = try? NSData(contentsOfURL: url, options: []) {
let json = JSON(data: data)
let size = Int64(json["size"].stringValue)
diskSpace = diskSpace + size!
}
}
}
var diskSpaceInMb = diskSpace / 1024 / 1024
print("diskSpaceInMb is \(diskSpaceInMb)")
Run Code Online (Sandbox Code Playgroud)
例如,我尝试获取三个元素的大小,其大小以字节为单位(这些大小以字节为单位,我在json中收到)
3223653
5855382
8948976
Run Code Online (Sandbox Code Playgroud)
当执行上面的代码时,我收到的结果
diskSpaceInMb is 8
Run Code Online (Sandbox Code Playgroud)
这显然不是尝试
如何正确地将字节转换为兆字节?
Cha*_*Raj 29
let fileSizeWithUnit = ByteCountFormatter.string(fromByteCount: diskSpace, countStyle: .file)
print("File Size: \(fileSizeWithUnit)")
Run Code Online (Sandbox Code Playgroud)
问题显然出在for循环上。也许 JSON 并不如您所期望的那样。
这可能失败的另一个原因是您使用关键字try?,在这种情况下,这意味着如果成功,它会为您提供一个值,否则它会返回nil。在你的情况下,它可能会默默地失败。如果你想检查是否失败,你可以添加一个else分支。
| 归档时间: |
|
| 查看次数: |
7009 次 |
| 最近记录: |