本人没有 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 的开发者们是怎么、去哪查阅相关解释的呢?
1
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. 以上仅供参考,祝你查到更多资料。 |
2
jmyz0455 OP @henryshen233 谢谢,我想问下就是我的 app 没有界面、不常驻菜单栏,就单纯双击后运行在 Dock 栏而已。
然后在这种情况下经常会运行着运行着突然从 Dock 栏上消失了,请问我有办法阻止他自动消失么。 |