使用核心蓝牙框架确实发现外设委托方法没有在swift中自行调用

时间:2014-09-26 10:49:09

标签: ios swift core-bluetooth

以下是我写的代码。我发现很多类似的问题,但无法得到适当的答案对我有帮助。 我正在使用swift和ios 8进行工作和使用核心蓝牙发现外围方法应该自己调用但是没有被调用。我该怎么做才能解决?

Code which I have implemented using core bluetooth framework

enter image description here

1 个答案:

答案 0 :(得分:0)

您的问题是您在创建scanForPeripheralsWithServices后立即调用CBCentralManager - 您需要等到中央管理器处于开机状态。

即 -

func centralManagerDidUpdateState(central: CBCentralManager) {

...
   else if central.state == CBCentralManagerState.PoweredOn {
       central.scanForPeripheralsWithServices(nil,options:nil)
   }
...
}

此外,将来您应该将代码发布到您的问题中并使用 {} 图标将其标记为代码而不是插入图片,因为图片无法将代码复制到答案中

<强>更新

您的另一个问题是,您在CBcentralManager内创建了btnScanClicked作为本地变量,因此只要此方法结束,您的CBCentralManager就会被释放。您需要在课程中将其创建为属性,然后引用self.central