我想用“ \ x0D \ x0A”写入两个字节的char数据。
在Objective-c中,我只需要写char *c = "\x0D\x0A"
,就可以使用[NSData dataWithBytes:"\x0D\x0A" length:2]
创建一个NSData。
现在,我想在Swift中使用相同的方法来创建一个包含这两个字节或其他内容的Data
。
但是当我使用var c = "\x0D\x0A"
时会出错,如果将其更改为var c = "\\x0D\\x0A
,则不会有任何错误,但是c
是8个字符的真实字符串。
那我该如何解决呢?
答案 0 :(得分:1)
在Objective-C中,char *
可以轻松转换为byte,这意味着"\x0D"
只是一个字节。在Swift中,如果要使用字节,也可以使用Uint8
所以char *c = "\x0D\x0A"
可以代替let c:[Uint8] = [0x0D,0x0A]
,仅此而已。
答案 1 :(得分:1)
以下是用两个字节创建Data
实例的三种方法:
let crlfData = Data([ 0x0d, 0x0a])
或:
let crlfData = "\u{0d}\u{0a}".data(using: .utf8)!
或:
var crlfData = Data()
crlfData.append(0x0d)
crlfData.append(0x0a)