首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Xcode 8.0 CBCentralManager问题

Xcode 8.0 CBCentralManager问题
EN

Stack Overflow用户
提问于 2016-09-21 01:53:21
回答 1查看 713关注 0票数 0

我最近下载了Xcode 8.0,并尝试运行我的上一个使用核心蓝牙的项目。

我已经启用了在构建设置中使用传统的Swift语言版本,以实现在WASTWR2.3中的兼容性,但是有一个问题发生了,

代码语言:javascript
运行
复制
func centralManagerDidUpdateState(central: CBCentralManager)
{
    print("state is \(central.state.rawValue)")
    if (central.state == CBCentralManagerState.PoweredOn)
    {
        self.centralManager?.scanForPeripheralsWithServices([serviceUUID], options: nil)
    }
    else
    {
        // do something like alert the user that ble is not on
    }
}

以前,CBCentralManagerState central.state会以int形式返回类型,但现在它返回CBManagerState,因此得到了一个错误,所以我更改为

代码语言:javascript
运行
复制
 if (central.state == CBManagerState.PoweredOn)

但是CBManagerState只支持IOS 10+,但是我想为IOS 8.3+构建它,那么如何更改代码呢?

UPDATE I也将项目转换为快速3.0,但问题仍然存在,所以我如何在ios版本低于10的手机上运行这个项目?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-21 02:42:29

最简单的方法就是使用对枚举值的简短引用:

代码语言:javascript
运行
复制
func centralManagerDidUpdateState(central: CBCentralManager)
{
    print("state is \(central.state.rawValue)")
    if (central.state == .PoweredOn)
    {
        self.centralManager?.scanForPeripheralsWithServices([serviceUUID], options: nil)
    }
    else
    {
        // do something like alert the user that ble is not on
    }

}

现在,您的代码将在没有错误或警告的情况下编译,并在所有目标上正确工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39606316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档