macos – 使用Swift获取MacBook的电池状态
我想设置一个Playground来获取我的macbook的电池状态.
我已经尝试过以下方法: import Cocoa import IOKit import Foundation var blob = IOPSCopyPowerSourcesInfo() 我目前收到如下错误
它在Playground中不起作用,但它可以在真实的应用程序中运行.
我无法使用Swift访问IOPowerSources.h头文件并仅导入IOKit,但是:我必须建立一个与Objective-C的桥梁. 这是我的解决方案: >将IOKit.framework添加到项目中(单击Linked Frameworks and Libraries) 例: 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()) 结果:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |