V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jmyz0455
V2EX  ›  程序员

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

  •  
  •   jmyz0455 · 2020-04-21 16:20:56 +08:00 · 542 次点击
    这是一个创建于 1478 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人没有 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 的开发者们是怎么、去哪查阅相关解释的呢?

    2 条回复    2020-04-29 22:31:37 +08:00
    henryshen233
        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. 以上仅供参考,祝你查到更多资料。
    jmyz0455
        2
    jmyz0455  
    OP
       2020-04-29 22:31:37 +08:00
    @henryshen233 谢谢,我想问下就是我的 app 没有界面、不常驻菜单栏,就单纯双击后运行在 Dock 栏而已。
    然后在这种情况下经常会运行着运行着突然从 Dock 栏上消失了,请问我有办法阻止他自动消失么。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   992 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:35 · PVG 05:35 · LAX 14:35 · JFK 17:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.