Hello, we use CBCentralManagerState in our bluetooth app's communication:
print("central.state: \(central.state)") self.centralManagerState = central.state as! CBCentralManagerState switch self.centralManagerState { case CBCentralManagerState.unauthorized: break case CBCentralManagerState.poweredOff: break case CBCentralManagerState.poweredOn: if queueScanning { queueScanning = false print("update state startScanning") self.startScanning() } break case CBCentralManagerState.resetting: break default: / break }
In iOS 10 it is deprecated and wea re to use CBManagerState and we can wrap it in the if #available(iOS 10.0, *) {} else {} as below
public func centralManagerDidUpdateState(_ central: CBCentralManager) { if #available(iOS 10.0, *) { self.managerState = central.state switch central.state { case CBManagerState.unauthorized: break case CBManagerState.poweredOff: break case CBManagerState.resetting: break case CBManagerState.poweredOn: if queueScanning { queueScanning = false print("update state startScanning") self.startScanning() } break default: break } } else { print("central.state: \(central.state)") self.centralManagerState = central.state as! CBCentralManagerState switch self.centralManagerState { case CBCentralManagerState.unauthorized: break case CBCentralManagerState.poweredOff: break case CBCentralManagerState.poweredOn: if queueScanning { queueScanning = false print("update state startScanning") self.startScanning() } break case CBCentralManagerState.resetting: break default: / break } }
However a couple of errors occur.
1. The else block will not compile as it also wants us not to use CBCentralManagerState
2. the declaration of var managerState: CBManagerState wants us to @available(iOS 10.0, *) on the whole class, which then filters errors throught the entire application that uses this class.
Any suggestions on how to support iOS 9 and iOS 10 with swift 3.0 would be appreciated. At this time we sould not be able to move to Swift 3 if this cannot be resolved as we have to support 9.x as well as 10.x
Thank you