2017-01-09 3 views
0

В настоящее время я переношу свой проект с swift 2.3 на swift 3, и я смущаюсь с одной вещью. в быстром 2.3 я могу просто использоватьЗначения характеристик считывания Corebluetooth

print("value \(characteristic.value!)") 

и напечатает значение я получил значение 61. Но в скор 3 было бы напечатать что-то вроде 1 байт. Чтобы получить значение, я попытался с помощью команды

print("value \(characteristic.properties.rawvalue)") 

С помощью этой команды он возвращает мне значение. Но почему Apple меняет это?

EDIT

Интересно, если это ошибка? я использую Xcode8.2.1 и swift 3 команду

characteristic.value! 

не вернет мне значение.

ответ

1

characteristic.value возвращение Data тип значение. Вот как я получаю данные.

 if let dataBytes = characteristic.value { 
      if characteristic.uuid == CBUUID(string: "FFF1") { 
       print(dataBytes) 
      } else if characteristic.uuid == CBUUID(string: "FFF2") { 
       print(dataBytes) 
      } 
     } 
+0

hi, yah это тип данных, но когда я печатаю значение, он показывает «1 байт», но это не то, что я не хочу. –

+0

Вы можете конвертировать любое значение, которое вам нужно. Другими словами, если возвращаемое значение является строковым типом, вы можете использовать 'let value = String (bytes: dataBytes, encoding: .utf8)' – WeiJay

+0

Спасибо, это полезно, но что, если мне нужно необработанное значение перед кодированием? –

Смежные вопросы