【发布时间】:2019-06-06 09:12:04
【问题描述】:
我正在关注Apple's documented example,以了解如何查询我设备上的可用磁盘空间。
我在applicationDidFinishLaunchingWithOptions 中使用以下代码:
let fileURL = URL(fileURLWithPath:"/")
do {
let values = try fileURL.resourceValues(forKeys: [
.volumeAvailableCapacityKey,
.volumeAvailableCapacityForImportantUsageKey,
.volumeAvailableCapacityForOpportunisticUsageKey,
.volumeTotalCapacityKey
])
print("Available Capacity: \(Float(values.volumeAvailableCapacity!)/1000000000)GB")
print("ImportantUsage Capacity: \(Float(values.volumeAvailableCapacityForImportantUsage!)/1000000000)GB")
print("Opportunistic Capacity: \(Float(values.volumeAvailableCapacityForOpportunisticUsage!)/1000000000)GB")
print("Total Capacity: \(Float(values.volumeTotalCapacity!)/1000000000)GB")
} catch {
print("Error retrieving capacity: \(error.localizedDescription)")
}
这会记录以下内容:
Available Capacity: 3.665879GB
ImportantUsage Capacity: 0.0GB
Opportunistic Capacity: 0.0GB
Total Capacity: 63.989494GB
为什么volumeAvailableCapacityForImportantUsage 和volumeAvailableCapacityForOpportunisticUsage 为零,在什么情况下会发生这种情况?
背景:
- 我正在通过 xCode 10.2.1 在我自己的 64GB iPhone SE 上运行这个实验(所以总容量看起来是正确的)
- 我的 iPhone 运行的是 iOS11
- iTunes 声称我的设备有 10.27GB 的“免费”空间
- 我正在努力解决这个问题,以便我知道我的用户是否有足够的空间来下载大型 (40MB+) 应用内购买项目
注意:这不与this question 相同。我知道如何查询可用空间。我想了解该查询的结果。
【问题讨论】:
-
如果你只是
print(values.volumeAvailableCapacityForImportantUsage!)- (没有转换为浮点数并且没有除法)你会得到什么? -
没有浮动和舍入它只是
0。对于volumeAvailableCapacityForImportantUsage和volumeAvailableCapacityForOpportunisticUsage。