得到"价值"从特征

时间:2016-09-27 21:38:13

标签: swift3 core-bluetooth

以下......

    func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
        print(characteristic)
    }

..输出...

<CBCharacteristic: 0x1700b8180, UUID = FFE1, properties = 0x10, value = <01>, notifying = YES>

我想要&#34;价值&#34;部分&#34; 01&#34;。

3 个答案:

答案 0 :(得分:1)

根据documentation,您可以通过以下方式访问它: characteristic.value,这将是Data类型的对象。 然后,您可以将此对象转换为字符串。 像这样:

let data = characteristic.value
var dataString = String(data: data, encoding: String.Encoding.utf8)

答案 1 :(得分:0)

我要感谢OOPer在Apple Developer论坛上的回答。

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {  
    guard let data = characteristic.value else {  
        return  
    }  
    if data.elementsEqual([0x01]) { //<- You can directly compare a Data to an Array of bytes.  
        //do something  
    }
}

答案 2 :(得分:-1)

迅速: 在更新价值时从特征中获取价值。

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {

        let value = characteristic.value

        print(value)
}