ios - didDisconnectPeripheral 未调用 iOS Swift 3

标签 ios xcode swift3 disconnect cbperipheral

我正在尝试断开与 BLE 设备的连接。我正在执行 cancelPeripheralConnection() 并且它从不调用 didDisconnectPeripheral()。 我将通知值设置为一个特征,因此在断开连接时我将其设置为 false。

{

BLEOperations.sharedInstance.connectedDevice?.setNotifyValue(false, for: BLEOperations.sharedInstance.peripheralCharacteristics[0])

BLEOperations.sharedInstance.manager.cancelPeripheralConnection(BLEOperations.sharedInstance.connectedDevice!)

}

当用户尝试连接到新设备时,我正在尝试断开 connectedPeripheral。当前设备未断开连接,但新设备与旧设备连接。

{

BLEOperations.sharedInstance.manager.connect(self.peripheralArray[indexPath.row] as! CBPeripheral , options: nil)

}

我在这里做错了什么?当设备连接丢失时,将调用该方法。

最佳答案

当 CentralManager 在整个流程中只有一个实例时,它会正常工作。

您可以创建一个 CentralManager 操作类(它是一个单例)并执行操作,而不是在 viewcontroller 中使用 centralmanagerdelegates。

我做到了,效果很好。

关于ios - didDisconnectPeripheral 未调用 iOS Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889964/

相关文章:

xcode - Xcode 4.3 是否支持 distcc?

xcode - Swift 缺少 tabbaritem 图像

xcode - 类似 iPad Safari 的缩略图缩放 View

ios - 在大多数情况下是否需要异步核心数据?

ios - 将数据从 TableView 传递到 View Controller

swift - Swift 3 中的 UICollectionView + NSFetchedResultsController

ios - 将 ios 的 "Player"框架更新为 swift 3

ios - 在 Xcode 8 中工作时 Storyboard变得困惑

ios - 修改约束时 TableView 不能正确弹跳

ios - Revenuecat React-Native iPad Purchases.purchasePackage- promise 不会解决