请问 Swift /macOS 的开发者们,如何查阅某个方法返回的字典,里面键的意思和可能的值?

2020-04-21 16:20:56 +08:00
 jmyz0455

本人没有 macOS 开发经验,Swift 也是初入门,最近为了解决 mbp 电池的痛点写了个自用的 app,在优化的过程中有不少疑惑 问题一 🤔问题二 ,比如以下的代码:

guard let snapshot = IOPSCopyPowerSourcesInfo()?.takeRetainedValue()
else { throw BatteryError.error }
guard let sources: NSArray = IOPSCopyPowerSourcesList(snapshot)?.takeRetainedValue()
else { throw BatteryError.error }
guard let info: NSDictionary = IOPSGetPowerSourceDescription(snapshot, ps as CFTypeRef)?.takeUnretainedValue()
else { throw BatteryError.error }

通过输出最后的这个 info 我会得到:

{
    "Battery Provides Time Remaining" = 1;
    BatteryHealth = Good;
    Current = "-1243";
    "Current Capacity" = 57;
    DesignCycleCount = 1000;
    "Hardware Serial Number" = G6MUQP9E5A371568B;
    "Is Charging" = 0;
    "Is Present" = 1;
    "Max Capacity" = 100;
    Name = "InternalBattery-0";
    "Power Source ID" = 5470344;
    "Power Source State" = "Battery Power";
    "Time to Empty" = 224;
    "Time to Full Charge" = 0;
    "Transport Type" = Internal;
    Type = InternalBattery;
}

好了,我想查询这个 IOPSGetPowerSourceDescription 方法返回的值的每一个值的作用,以及有可能有哪些值,我要怎么查呢?比如这个 Power Source State 是什么意思,“1” 又代表什么?

我只能找到这个官方文档 IOPSGetPowerSourceDescription 感觉这个文档解释好简陋,写了跟没写一样。搜索 CFDictionary 也没有更详细的文档了。请问像这种情况 Swift/macOS 的开发者们是怎么、去哪查阅相关解释的呢?

602 次点击
所在节点    程序员
2 条回复
henryshen233
2020-04-21 17:32:31 +08:00
1. “Power Source State”这些的话可以直接通过字面意思去理解。
2. 如果通过字面去理解,一个值应该只可能是“1”或“0”的话,那“1”应该是 true 咯,“0”就是 false 。
3. “Max Capacity”的数值就应该是表示的是 100%。
4. “Time to Empty”估计单位是分钟。
3. 以上仅供参考,祝你查到更多资料。
jmyz0455
2020-04-29 22:31:37 +08:00
@henryshen233 谢谢,我想问下就是我的 app 没有界面、不常驻菜单栏,就单纯双击后运行在 Dock 栏而已。
然后在这种情况下经常会运行着运行着突然从 Dock 栏上消失了,请问我有办法阻止他自动消失么。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/664690

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX