diff --git a/Sources/SwiftySensors/CoreBluetooth.swift b/Sources/SwiftySensors/CoreBluetooth.swift index 810801f..2469c9a 100755 --- a/Sources/SwiftySensors/CoreBluetooth.swift +++ b/Sources/SwiftySensors/CoreBluetooth.swift @@ -17,12 +17,12 @@ extension CBCharacteristic { - parameter enabled: Notification Flag */ public func notify(_ enabled: Bool) { - service.peripheral.setNotifyValue(enabled, for: self) + service?.peripheral?.setNotifyValue(enabled, for: self) } /// Read the value of the Characteristic public func read() { - service.peripheral.readValue(for: self) + service?.peripheral?.readValue(for: self) } /** diff --git a/Sources/SwiftySensors/Sensor.swift b/Sources/SwiftySensors/Sensor.swift index 0cdac60..50784aa 100755 --- a/Sources/SwiftySensors/Sensor.swift +++ b/Sources/SwiftySensors/Sensor.swift @@ -275,7 +275,7 @@ extension Sensor: CBPeripheralDelegate { /// :nodoc: public func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { - guard let service = services[characteristic.service.uuid.uuidString] else { return } + guard let service = services[characteristic.service?.uuid.uuidString ?? ""] else { return } guard let char = service.characteristics[characteristic.uuid.uuidString] else { return } if char.cbCharacteristic !== characteristic { char.cbCharacteristic = characteristic @@ -286,7 +286,7 @@ extension Sensor: CBPeripheralDelegate { /// :nodoc: public func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) { - guard let service = services[characteristic.service.uuid.uuidString] else { return } + guard let service = services[characteristic.service?.uuid.uuidString ?? ""] else { return } guard let char = service.characteristics[characteristic.uuid.uuidString] else { return } if char.cbCharacteristic !== characteristic { char.cbCharacteristic = characteristic