Swift BLE设备-写入值

Swift BLE设备-写入值,swift,bluetooth-lowenergy,Swift,Bluetooth Lowenergy,我有0x010303757372707764要写入可扩展设备。我知道使用writeValue方法 peripheral.writeValue(data, for: characteristics[i], type: .withResponse) 但是我想写0x010303757372707764作为数据。我该怎么做 如果您需要更多信息,请告诉我!谢谢大家! 为此,必须使用UInt8数组值,如“数组” 当您在Peripheral.writeValue中写入数据时,必须将该UInt8值作为data

我有0x010303757372707764要写入可扩展设备。我知道使用writeValue方法

peripheral.writeValue(data, for: characteristics[i], type: .withResponse)
但是我想写0x010303757372707764作为数据。我该怎么做


如果您需要更多信息,请告诉我!谢谢大家!

为此,必须使用UInt8数组值,如“数组”

当您在Peripheral.writeValue中写入数据时,必须将该UInt8值作为data()函数传递

让我来分享一个这样的例子

让CmdRequestTempLogSize=“#requestTempLogSize$”

let writeData=数据(CmdRequestTempLogSize.bytes) //*CmdRequestTempLogSize.bytes将您的UInt8值放入*

对于字节,您可以使用字符串扩展(现在我使用字符串值转换为字节(UInt8)

公共变量字节:数组{
返回数据(使用:String.Encoding.utf8,allowossyconversion:true)?.bytes??数组(utf8)
}

希望本例中您能够理解如何将数据转换为字节数组

使用
UInt8
序列初始值设定项进行数据:

init<S>(_ elements: S) where S : Sequence, Self.Element == S.Element

这是一个72位整数还是字符串,或者其他什么?这个问题所问的值不是UTF8字符串,所以这个答案不适用。将字符串转换为数据到
[UInt8]
然后再转换回数据过于复杂。即使要将字符串转换为UTF8数据,代码也将是
数据(string.UTF8)
。不需要使用选项。在您的示例中,0x01、0x03、0x03等不是唯一的UInt8值,因此在我的示例中,我只解释了UInt8数组的相同逻辑。是的,但大多数
[UInt8]
是无效的UTF-8序列,因此您描述的字符串不可能存在。这个特定的字节字符串原来是因为所有的值都小于0x80,但这是一个巧合。我同意
[UInt8]
是构建数据的好工具。字符串是一个坏工具(如果它不代表文本)。
init<S>(_ elements: S) where S : Sequence, Self.Element == S.Element
let data = Data([0x01, 0x03, 0x03, 0x75, 0x73, 0x72, 0x70, 0x77, 0x64])