CoreBluetooth, iOS - PullRequest
       24

CoreBluetooth, iOS

0 голосов
/ 28 сентября 2018

Я пытаюсь получить данные от специального устройства Bluetooth в формате JSON.Как я понял CoreBluetooth в didUpdateValue для CBC характерный делегат отправляет 20 байт массажа и вы можете работать с ним.Проблема состоит в том, что если этот 20-байтовый массаж содержит символы кириллицы, didUpdateValueForCBCharacteristic делегат не отправляет мне эти 20 байт, и в конце у меня нет действительного JSON.Пример:

{"Rows":[ 
     {"num":0,"id":1,"pid":0,"type":0,"name":"Папка1"},
     {"num":1,"id":2,"pid":0,"type":0,"name":"Group2"},
     {"num":2,"id":4,"pid":1,,"id":5,"pid":2,"type":1,"name":"Group2запись"}
]}

Как видите, в этом json после {"num":2,"id":4,"pid":1, у меня было 20 байт с кириллицей.

Данные об устройстве отправляются в UTF8

Я преобразую этоданные в строку, как показано ниже

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
let readValue = myCharacteristic.value ?? Data()
jsonString1 = String(data: readValue, encoding: String.Encoding.utf8) ?? ""
massageFromDevice = massageFromDevice + jsonString1

Как я могу решить это?

...