以下是我写的代码。我发现很多类似的问题,但无法得到适当的答案对我有帮助。 我正在使用swift和ios 8进行工作和使用核心蓝牙发现外围方法应该自己调用但是没有被调用。我该怎么做才能解决?
码
答案 0 :(得分:0)
您的问题是您在创建scanForPeripheralsWithServices
后立即调用CBCentralManager
- 您需要等到中央管理器处于开机状态。
即 -
func centralManagerDidUpdateState(central: CBCentralManager) {
...
else if central.state == CBCentralManagerState.PoweredOn {
central.scanForPeripheralsWithServices(nil,options:nil)
}
...
}
此外,将来您应该将代码发布到您的问题中并使用 {} 图标将其标记为代码而不是插入图片,因为图片无法将代码复制到答案中
<强>更新强>
您的另一个问题是,您在CBcentralManager
内创建了btnScanClicked
作为本地变量,因此只要此方法结束,您的CBCentralManager
就会被释放。您需要在课程中将其创建为属性,然后引用self.central