为什么“volumeAvailableCapacityForImportantUsage”为零?

2024-01-24

我正在关注苹果的记录示例 https://developer.apple.com/documentation/foundation/urlresourcekey/checking_volume_storage_capacity了解如何查询我的设备上的可用磁盘空间。

我在我的中使用下面的代码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

Why are volumeAvailableCapacityForImportantUsage and volumeAvailableCapacityForOpportunisticUsage为零,什么情况下会发生这种情况?

背景:

  • 我通过 xCode 10.2.1 在我自己的 64GB iPhone SE 上运行此实验(因此总容量看起来是正确的)
  • 我的 iPhone 运行的是 iOS 11
  • iTunes 声称我的设备有 10.27GB“免费”空间
  • 我正在尝试解决这个问题,以便我知道我的用户是否有足够的空间来下载大型(40MB+)应用内购买

注意:这是not这个问题 https://stackoverflow.com/questions/26198073/query-available-ios-disk-space-with-swift/47463829。我知道如何查询可用空间。我想了解该查询的结果。


问题是您正在尝试获取 / 处的系统卷的容量,该系统卷是文件系统的根目录。这个 API 的行为很奇怪,但你可以获得你需要的信息。如果您使用应用程序的文档目录,则FileManager方法和.volumeAvailableCapacityKey仍然会产生奇怪的值,但你现在得到有用的值.volumeAvailableCapacityForImportantUsageKey and .volumeAvailableCapacityForOpportunisticUsageKey.

Example:

let f = ByteCountFormatter()

let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
print("path = \(path)")

let attrs = try! FileManager.default.attributesOfFileSystem(forPath: path)
let fmFree = (attrs[.systemFreeSize] as! NSNumber).int64Value
print("FileManager.attributesOfFileSystem free: \(f.string(fromByteCount: fmFree))")

let docsURL = URL(fileURLWithPath: path)
let values = try! docsURL.resourceValues(forKeys: [.volumeAvailableCapacityKey, .volumeAvailableCapacityForImportantUsageKey, .volumeAvailableCapacityForOpportunisticUsageKey])
print("Volume available capacity: \(f.string(fromByteCount: Int64(values.volumeAvailableCapacity!)))")
print("Volume important available capacity: \(f.string(fromByteCount: values.volumeAvailableCapacityForImportantUsage!))")
print("Volume opportunistic available capacity: \(f.string(fromByteCount: Int64(values.volumeAvailableCapacityForOpportunisticUsage!)))")

在我的系统上打印:

FileManager.attributesOfFileSystem free: 8.51 GB
Volume available capacity: 8.51 GB
Volume important available capacity: 177.16 GB
Volume opportunistic available capacity: 175.88 GB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么“volumeAvailableCapacityForImportantUsage”为零? 的相关文章

  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • 为什么我们在 @synchronized 块中传递 self ?

    我猜 synchronized 块不依赖于对象 而是依赖于线程 对吗 既然如此 我们为什么要传递 self 呢 synchronized是语言提供的用于创建同步作用域的构造 因为使用简单的全局共享互斥锁效率非常低 因此序列化每个单独的互斥锁
  • 适用于 iOS 的 Google Cast SDK 2.3.0 不支持 64 位

    似乎是适用于 iOS 的 Google Cast SDK 2 3 0 版本 https developers google com cast downloads GoogleCastFramework 2 3 0 Release zip停止
  • Swift 数组设置索引值不起作用

    我有一个方法 下面的内容 其中queue2只是一个 Int 我打印了很多东西 看看一切是否都正常 public func cool item Int println item println back queue2 insert item
  • iOS Swift 检测键盘事件

    我能以某种方式检测来自 iOS 键盘的事件吗 我想检测此类事件UIViewController哪个没有UITextField或任何此类物体 我只有四个圆圈UIView我想在按下键盘上的按钮时将它们涂成不同的颜色 您没有任何对象可以从键盘获取
  • 如何在 RestKit 中为同一类提供两条发布路线

    由于我无法弄清楚如何为同一个类设置两个不同的 POST 资源路径 因此我尝试手动创建 RKObjectLoader 请求 但它似乎不断发送 GET 请求而不是 POST 即使我已将方法设置为邮政 这是我的代码 User user User
  • iOS App布局错误,调用状态栏

    在主动通话和应用程序布局期间面临状态栏问题 我正在使用自动布局 当我运行应用程序 然后开始通话时 一切正常 UI 会随着状态栏的更改而正确缩放 但是 如果我首先开始通话 然后运行应用程序 应用程序屏幕会移动到底部 20pt 就像它们对新状态
  • 使用 UIImagePickerController 的应用程序在拍照后选择“使用照片”时冻结

    我现在正在开发一个简单的照片和视频捕获应用程序 该应用程序成功地允许用户按下按钮即可拍摄照片或视频 但是 一旦您完成拍摄照片或视频 它就会提供 2 个选项 重新拍摄 和 使用照片 或 使用视频 具体取决于您使用的选项 如果用户点击 重新拍摄
  • 尝试从独立的 Apple Watch 应用发出网络请求

    当应用程序是独立应用程序时 Apple Watch 是否无法进行网络通话 即使手表已连接到 iPhone 我正在使用新的独立应用程序目标 它没有附带可以发出 WatchConnectivity 请求的配对 iOS 应用程序 我十有八九收到
  • Swift 对异步编程有什么语言级别的支持(如果有)?

    当应用程序必须通过不可预测的网络 例如智能手机应用程序 进行通信时 异步编程对于响应式用户界面来说是必须的 用户界面必须保持响应 同时等待结果从互联网上某处的服务器返回 在大多数语言中 应用程序程序员必须实现自己的状态机 可能使用闭包 来响
  • Swift:从自定义 UITableViewCell 中的 UITextField 检索文本并将其放入数组中

    我正在制作一个非常简单的应用程序 用户在第一个屏幕中输入人数 在第二个屏幕中 它会生成一些UITableViewCell基于用户在第一个屏幕中输入的数字 这UITableViewCell have a UITextField在其中 一旦用户
  • UIBezierPath 的起始和结束角度?

    我在 iOS 中使用如下代码编写了半圆UI贝塞尔路径 and CAShape层 clockWiseLayer CAShapeLayer alloc init CGFloat startAngle M PI 2 CGFloat endAngl
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • iPad 3 中配备 Xcode 4.2 和 Retina 的 iOS 5.1

    我有一台装有 Mac OS X Snow Leopard 的 Mac 我可以添加 iOS 5 1 吗 使用 iPad 3 的新分辨率 我们将如何处理图像 因为如果该应用程序将在 iPhone 3GS 4 和 iPad 3 中运行 我认为我们
  • 在模拟器中运行应用程序时删除本地通知的 iOS 权限警报

    我正在尝试编写验收测试KIF https github com kif framework KIF在一个很早就要求本地通知权限的应用程序上 不幸的是 由于 iOS 模拟器安全原因无法使用 KIF 自动接受 iOS 权限警报 https gi
  • Cognito/IAM 策略和 S3 获取对象

    我正在尝试将 S3 和 Cognito 集成到我的 iOS 应用程序中 但到目前为止尚未成功 我相信该错误与我针对 Auth 和 Unauth 用户的 IAM 策略有关 所以这是我的政策 Version 2012 10 17 Stateme
  • 如何自动为 Swift 类创建初始化程序?

    UPDATE 使用结构而不是类 struct 在很多方面都更好 它有自己的初始化器 这是我的模型课 是否有可能创建init自动方法 每次我都必须将所有变量一一初始化 这会花费很多时间 class Profile var id String
  • iOS 发送 iMessage 尽可能简单

    我希望能够以编程方式发送 iMessage 除了调用一个将文本发送到带有消息的号码的函数之外 无需执行任何其他操作 这两个消息都是文本框 我真的很感激一些示例代码 因为我在网上搜索过 但我发现没有任何帮助 这不适用于商业应用程序 仅适用于我
  • 当设置 setVisibleXRangeMaximum 时,iOS-Charts X 轴值无限重复

    我正在尝试绘制一个图表 其中 x 轴是TimeIntervalY 轴是power consumption 由于每天都会有数据 因此将有太多数据无法显示 因此 我想一次显示 5 个值 我通过设置实现了这一点self chart setVisi

随机推荐

  • 重写 Flask add_url_rule 以路由特定 URL

    我在 Flask 中使用基于类的视图来创建 CRUD REST API 并使用以下命令注册路由add url rule像这样 class GenericAPI MethodView def get self item group item
  • 如何均匀平衡多行文本?

    我想显示一小段可能换行为两行或三行的文本 它位于一个高度视觉化的元素内 出于样式目的 我希望线条的长度尽可能相等 更喜欢一根线而不是两根线 而不是这个 这是将一段文本换行为两个的示例 lines 我要这个 这是一个例子 将换行为两行的文本
  • 在 PySide6 中使用 GraphicalEffects

    我正在使用 PySide6 并尝试使用 GraphicalEffects 模块 根据此处的文档 https doc qt io qt 6 qtgraphicaleffects5 index html https doc qt io qt 6
  • 动画排序堆积条形图 d3.js

    我想要制作一种堆积条形图的动画这个图表 http bl ocks org mbostock 3886208参数如下这个图表 http bl ocks org mbostock 3885705 我成功地对 x 轴进行了排序 但我没有成功地移动
  • 错误:phonegap 中缺少 config.xml

    我的电话间隙有问题 我正在phonegap 中开发一个项目 几天前它就已经运行了 现在 当我尝试运行同一个应用程序时 我得到了 ERROR config xml is missing Add res xml plugins xml to y
  • NumPy 中的索引:访问所有其他组的值

    The n numpy 中的索引选项提供了一种非常有用的方法来索引列表中的每个第 n 项 但是 是否可以使用此功能来提取多个值 例如所有其他pair的价值观 例如 a np array 0 1 2 3 4 5 6 7 8 9 10 11 我
  • Mongoose 查询大于或小于某个日期的嵌套文档

    如何查询大于或小于特定日期的评论 这是我的带有帖子模型和评论模型的架构 var mongoose require mongoose var should require should mongoose connect localhost t
  • 从 bash 脚本中的 URL 中提取文件名和路径

    在我的 bash 脚本中 我只需要从给定的 URL 中提取路径 例如 从包含字符串的变量 我只想提取到其他变量 one more dir file exe 部分 当然 登录名 密码 文件名和参数是可选的 由于我是 sed 和 awk 的新手
  • Scalaz:“scalaz.syntax.applicative._”如何发挥其魔力

    这个问题与this one https stackoverflow com questions 38524384 reader monad in scala return local and sequence 我试图了解如何在 Scala
  • 自动更新带有 TFS 修订版的文件?

    我对 TFS 很陌生 实际上我只是使用它 因为我在 CodePlex 上有一些项目并且不想通过 svnbridge 并且我正在寻找与 SVN 中的 Revision 参数等效的东西 本质上在结帐时 我想更新一个文件以包含最新的修订号 以显示
  • Python Pandas:如何将成对映射列表转换为行向量格式?

    我有一个 2 列 DataFrame column 1 对应于客户 column 2 对应于该客户访问过的城市 数据框如下所示 print df customer visited city 0 John London 1 Mary Melb
  • 为什么我们需要为 Option 变量调用 take()

    在这段代码中 pub struct Post state Option
  • 所有表的层次结构列表

    在 SQL Server 数据库中 我必须找到所有 主 父 表并构建一个 父 子表的层次结构列表 最后我想遍历那个层次结构 从下往上列出并删除最后我可以删除的所有子表数据 父数据也 我尝试过一种方式 即使用系统表 如 sys objects
  • Protractor 中的自定义浏览器操作

    问题 在我们的一项测试中 我们有一个 长按 单击并按住 功能 https stackoverflow com questions 27300433 protractorangularjsjasmine test press and hold
  • 构建可在 Windows 和 OS X 上运行的 .NET 应用程序安装程序?

    我很惊讶我找不到这个问题已经被问过 所以如果我只是错过了它 请立即通知 我需要在 NET 中编写一个非常小 相当简单的应用程序 最终消费者将下载该应用程序并将其安装在他们的系统上 Silverlight 的沙盒模型将无法工作 它必须是完整下
  • 导入错误:没有名为 sqlalchemy 的模块

    我无法在 python 中找到模块 尽管 easy install 说它已经安装了 知道如何解决这个问题吗 python c from flaskext sqlalchemy import SQLAlchemy Traceback most
  • 刷新后的Whitelabel错误页面

    我有 Spring Boot 应用程序 后端 对于前端 我使用 Angular 2 单页应用程序 每当我导航到路线 例如 localhost 8080 getAccounts 并在导航后刷新时 我都会收到 Whitelabel 错误页面 如
  • 锚标记中的上标无法正常工作

    我有一个链接和链接名称中的上标 我得到了上标 但它与下划线一起移到了顶部 因为它是一个链接 我试图将下划线保留在标题所在的位置 只抬起上标 但没有想法 我尝试了一种技巧 但它仅适用于谷歌浏览器 这是我的代码 a href http www
  • cordova 3.4.0安装错误

    我正在尝试在科尔多瓦创建项目 但出现以下错误 C xampp htdocs tagcordova sample gt cordova d platform add android Platform android not recognize
  • 为什么“volumeAvailableCapacityForImportantUsage”为零?

    我正在关注苹果的记录示例 https developer apple com documentation foundation urlresourcekey checking volume storage capacity了解如何查询我的设