Я пытаюсь обернуть периферийные методы Core Bluetooth для использования в React Native.Это аналог уже готового кода Android, поэтому API установлен.
Когда я звоню CBPeripheralManager.addService , мне нужно выполнить или отклонить обещание, переданное со стороны JavaScript..
Проблема в том, что Core Bluetooth не предлагает обратный вызов для метода, похоже, он ожидал private func peripheralManager(_ peripheral: CBPeripheralManager, didAddService service: CBService, error: Error?)
Я новичок в iOS и Swift, так что это поведение кажется странныммне.Любые идеи, как я могу обернуть функцию, чтобы я мог обрабатывать сообщения об ошибках правильно?
Спасибо
class BLE: NSObject, CBPeripheralManagerDelegate {
var advertising: Bool = false
var servicesMap = Dictionary<String, CBMutableService>()
var manager: CBPeripheralManager!
override init() {
super.init()
manager = CBPeripheralManager(delegate: self, queue: nil, options: nil)
}
func addService(promise, serviceUUID) {
let serviceUUID = CBUUID(string: uuid)
let service = CBMutableService(type: serviceUUID, primary: true)
manager.add(service)
}
private func peripheralManager(_ peripheral: CBPeripheralManager, didAddService service: CBService, error: Error?) {
if let error = error {
// this should reject the addService promise
return
}
// this should fulfill the promise
}
}