怎么把Int8转换成Character?

时间:2019-03-27 17:54:04

标签: swift

我需要将Int8转换为Character。我该怎么办?

我尝试使用UnicodeScalar

var result += Character(UnicodeScalar(data[i]))

...但是出现此错误:

  

无法为带参数的'UnicodeScalar'类型调用初始化程序   类型列表(Int8)

2 个答案:

答案 0 :(得分:1)

也许您只需要将整个数据转换为字符串:

var result = String(data: data, encoding: .ascii)

答案 1 :(得分:1)

Unicode.Scalar仅可使用docs中的某些类型的参数来初始化。

我建议您使用init(_:),它取UInt8,它告诉给定的数字为正(创建UnicodeScalar时需要)。因此,您可以尝试将Int8强制转换为UInt8,然后初始化程序将使用正确类型的参数

let int: Int8 = data[i]
if let uint = UInt8(exactly: int) {
    let char = Character(UnicodeScalar(uint))
}