gpt4 book ai didi

iphone - CBCentralManager 的状态什么时候会打开但仍然给我一个 "not powered on"警告?

转载 作者:技术小花猫 更新时间:2023-10-29 10:15:44 25 4
gpt4 key购买 nike

当我在 iPhone 5 上运行使用 CoreBluetooth 的应用程序时,我不断收到此错误:<CBConcreteCentralManager: 0x2007d590> is not powered on

但是当我调用 state在我程序的唯一一个 CBCentralManager 对象上,它返回 5,即 CBCentralManagerStatePoweredOn。所以它已打开,但我收到此错误。 iPhone 的蓝牙也已启用。

一般来说,这会在什么时候发生?我什至不知道程序运行时发生了什么,因为我收到的消息看起来像是相互冲突的。

最佳答案

您必须先等到 centralManager 在应用程序启动时从 centralManagerDidUpdateState: 获得回调。然后每隔一段时间,我建议在执行任何 centralManager 调用之前检查状态。您很可能在中央有机会更新之前调用扫描或检索。确保您只在知道它打开后才调用方法。如果您将每个调用包装在首先检查状态的 if 语句中,您将不会收到错误。

- (void)centralManagerDidUpdateState:(CBCentralManager *)central
{
if(central.state==CBCentralManagerStatePoweredOn)
{
//Now do your scanning and retrievals
}
}

否则,只需在每次调用之前将您的中央包裹在状态检查中:

if(yourCentral.state==CBCentralManagerStatePoweredOn)
{
//you're good to go on calling centralManager methods
}

关于iphone - CBCentralManager 的状态什么时候会打开但仍然给我一个 "not powered on"警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17118534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com