Вам просто нужно получить первые два байта Data
как UInt16
.
var result: UInt16 = 0
_ = withUnsafeMutableBytes(of: &result) {characteristic.value!.copyBytes(to: $0, from: 0...1)}
print("\(result) degrees")
Предполагается, что ваш формат uint16 относится к Little-Endian, а также к iOS, что чаще встречается в характеристиках BLE.
(Когда вы получаете первое значение в Data
, from: 0...1
не требуется, но вы можете захотеть, чтобы некоторые данные были в другой позиции.)