Как мне обработать nsinlinedata от сканирования Bluetooth? - PullRequest
0 голосов
/ 05 октября 2018

Я хочу использовать данные, которые передаются через сканирование Bluetooth.и я хочу разделить и использовать данные из nsinlinedata.

Я импортирую данные через сканирование Bluetooth следующим образом.

    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
    if !peripherals.contains(peripheral){
        peripherals.append(peripheral)
    }

    let key = peripheral.identifier.uuidString
    let data = advertisementData.description
    let rawData = advertisementData
    rawData.forEach { (key, val) in
        print("\(key)   :   \(val)")
    }

    print("uuid: \(key)")
    if let previous = datas[key] {
        if (previous != data) {
            datas.updateValue(data, forKey: key)
            rawdatas.updateValue(advertisementData, forKey: key)
        }
    } else {
        datas[key] = data
        rawdatas[key] = advertisementData
    }
}

Форма данных выглядит следующим образом.

//uuid: 81DB0A8E-6C47-1ADF-E1C5-3D7D4269D66D

//kCBAdvDataIsConnectable   :   0
//kCBAdvDataServiceData   :   {
//    FEAA = <20000200 19400000 03d80000 0000>;
//}
//kCBAdvDataServiceUUIDs   :   (
//    FEAA
//)

Были извлечены следующие данные.

if rawdata["kCBAdvDataServiceData"] != nil{
            let parseData:NSDictionary = rawdata["kCBAdvDataServiceData"] as! NSDictionary
            let data = parseData.allValues.first
// data => optional(<20000200 19400000 03d80000 0000>)
// data type => _NSinlineData
        }

Я хочу вынуть число 5,6,7,8 (0200) из данных и заменить его десятичным числом.Я не знаю, как обращаться с nsinlinedata.

помогите мне .. пожалуйста ..

...