質問があります。私はMiバンドとのインターフェースを試みています。 githubでこのコードが見つかりました。うまくいきます。しかし、私はデータ型変換で何が起こっているのか理解していません。このコードブロックから来MacのSwiftでBLEのデータ型変換
var u16 = UnsafePointer<Int32>(characteristic.value!.bytes).memory
:
func peripheral(peripheral: CBPeripheral, didUpdateValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {
output("Data for "+characteristic.UUID.UUIDString, data: characteristic.value!)
if(characteristic.UUID.UUIDString == "FF06") {
spinnerView.hidden = true
let u16 = UnsafePointer<Int>(characteristic.value!.bytes).memory
stepsView.stringValue = ("\(u16) steps")
} else if(characteristic.UUID.UUIDString == "FF0C") {
spinnerView.hidden = true
var u16 = UnsafePointer<Int32>(characteristic.value!.bytes).memory
u16 = u16 & 0xff
batteryView.stringValue = ("\(u16) % charged")
}
}
誰かが私にそれを説明することはできますか?ありがとうございました!
それは方法だ他の値にNSDataのを変換する(スウィフトの最後のバージョンにしたり、新しい方法、私は知らない)(私たちの場合、彼らは 'int'または'のInt32です')。以前は、 'getBytes:length:'であった。 – Larme
@Larmeご返信ありがとうございます。その場合、なぜ「UnsafePointer」が使用されますか? – vevek
http://stackoverflow.com/questions/26045762/how-does-nsdatabyteslength-convert-byte-to-unsafepointervoid-in-swift? – Larme