我正在做一个项目,包括coreblutooth。我研究了这个话题,在网上找到了一些教程。
现在我重新创建了一些教程,在几乎所有方法中,我都会得到以下错误:
条件绑定的初始值设定项必须具有可选类型,而不是“CBCentralManager”

func centralManagerDidUpdateState(central: CBCentralManager) {
    if let central = central{ //Here is the error line
        if central.state == CBCentralManagerState.PoweredOn {
            print("Bluetooth ON")
        }
        else {
            // Can have different conditions for all states if needed - print generic message for now
            print("Bluetooth switched off or not initialized")
        }
    }

}

最佳答案

传递给delegate方法的CBCentralManager不是可选的-它没有?后缀,因此不需要将其展开。这就是错误告诉你的——你试图解开一个不是可选的变量。
你可以说

func centralManagerDidUpdateState(central: CBCentralManager) {
    if central.state == CBCentralManagerState.PoweredOn {
        print("Bluetooth ON")
    }
    else {
        // Can have different conditions for all states if needed - print generic message for now
        print("Bluetooth switched off or not initialized")
    }
}

关于swift - 核心蓝牙可选类型不是CBCentralmanager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32296134/

10-12 14:32