2017-01-09 5 views
0

私は現在、swift 2.3からswift 3に私のプロジェクトを移行しています。私は1つのことと混同しています。 SWIFT 2.3に私は単にCorebluetoothの読み取り特性値が変更されます

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

を使用することができますし、それは私が値61を受信した値を印刷するだろうが、3迅速にそれが1バイトのようなものを印刷します。値を取得するために、私はコマンドで試しました

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

このコマンドで私に値を返します。しかし、なぜこれを変更するのですか?それはバグである場合、私は疑問に思う

EDIT

?私はXcode8.2.1を使用しており、コマンド3を速くする。

characteristic.value! 

は値を返さないだろう。

答えて

1

characteristic.valueDataタイプ値を返します。データを取得する方法は次のとおりです。

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

やあ、それをyahのは、データ型であるが、私は値を印刷するとき、それは「1バイト」を示しているが、それは私がwan'tものではありません。 –

+0

必要な値に変換できます。つまり、戻り値が文字列型の場合は、 'let value = String(bytes:dataBytes、encoding:.utf8)'を使用することができます。 – WeiJay

+0

ありがとうございます。 –

関連する問題