Конвертировать данные? содержащий байты в Int в Swift 5 - PullRequest
0 голосов
/ 10 апреля 2019

Я читаю из характеристики периферийного устройства на IoS некоторые данные, и когда я пытаюсь их напечатать, он просто говорит 2 байта. Глядя на тип, это необязательный тип данных (данные?).

Мой вопрос в том, чтобы преобразовать это значение в читаемое целое число, что является лучшим и быстрым способом в swift 5?

Если я пытаюсь распечатать характеристическое значение, оно просто говорит "2 байта". характеристика.значение является необязательным типом данных.


switch characteristic.uuid:

   case accelerometerUUID:
      if characteristic.value != nil {
            let accelValue = ???
            print(accelValue)
      }

Большое спасибо!

1 Ответ

0 голосов
/ 10 апреля 2019

Попробуйте это:

guard let value = characteristic.value else { return } // This makes it non-optional
let stringInt = String(data: value, encoding: .utf8)
let yourNumber = Int(stringInt)

Это намного безопаснее, чем в примере ниже. Тот, что выше, должен быть предпочтительным.

В одной строке кода:

let yourNumber = Int(String(data: characteristic.value!, encoding: .utf8))

Это небезопасно, поскольку вы разворачиваете значение, которое может быть необязательным, это может привести к сбою.

Надеюсь, это поможет!

...