栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Swift获取MacBook的电池状态

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Swift获取MacBook的电池状态

它在Playground中不起作用,但在真实的应用程序中起作用。

但是,我只能

IOPowerSources.h
用Swift 无法访问头文件
import IOKit
:我不得不与Objective-C建立桥梁。

这是我的解决方案:

  1. 添加

    IOKit.framework
    到您的项目(单击
    +
    进入
    linked frameworks and Libraries

  2. .m
    无论名称如何,都创建一个新的空文件。然后,Xpre将询问是否应创建“桥接标头”。说是。

  3. 忽略

    .m
    文件。在
    YOURAPPNAME-Bridging-Header.h
    Xpre刚刚创建的新文件中,添加该行
    #import <IOKit/ps/IOPowerSources.h>
    (不要
    import IOKit
    在您的Swift文件中添加)

  4. 您现在可以访问大多数

    IOPowerSources
    功能。

例:

func getBatteryStatus() -> String {    let timeRemaining: CFTimeInterval = IOPSGetTimeRemainingEstimate()    if timeRemaining == -2.0 {        return "Plugged"    } else if timeRemaining == -1.0 {        return "Recently unplugged"    } else {        let minutes = timeRemaining / 60        return "Time remaining: (minutes) minutes"    }}let batteryStatus = getBatteryStatus()print(batteryStatus)

注意:我无法像
这样访问常量

kIOPSTimeRemainingUnlimited
kIOPSTimeRemainingUnknown
因此我使用了它们的原始值(-2.0和-1.0),但是如果这些常量仍然存在于某个地方,那将更好。

又如 ,具有

IOPSCopyPowerSourcesInfo

let blob = IOPSCopyPowerSourcesInfo()let list = IOPSCopyPowerSourcesList(blob.takeRetainedValue())print(list.takeRetainedValue())

结果:

=内部; 类型= InternalBattery; } )



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391055.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号