Swift 如何将Int8转换为字符?

Swift 如何将Int8转换为字符?,swift,Swift,我需要将Int8转换为字符。我怎么做 我试过使用UnicodeScalar 。。。但我犯了这个错误: 无法使用参数调用类型“UnicodeScalar”的初始值设定项 Int8类型列表 也许您只需要将整个数据转换为字符串: var result = String(data: data, encoding: .ascii) 也许您只需要将整个数据转换为字符串: var result = String(data: data, encoding: .ascii) 标量可以仅使用某些类型的参数初始化

我需要将Int8转换为字符。我怎么做

我试过使用UnicodeScalar

。。。但我犯了这个错误:

无法使用参数调用类型“UnicodeScalar”的初始值设定项 Int8类型列表


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

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

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

var result = String(data: data, encoding: .ascii)
标量可以仅使用某些类型的参数初始化,您可以在中找到这些参数

我建议您使用带UInt8的,它告诉您给定的数字是正的,这是创建UnicodeScalar所必需的。所以,您可以尝试将Int8强制转换为UInt8,然后初始值设定项接受正确类型的参数

let int: Int8 = data[i]
if let uint = UInt8(exactly: int) {
    let char = Character(UnicodeScalar(uint))
}
标量可以仅使用某些类型的参数初始化,您可以在中找到这些参数

我建议您使用带UInt8的,它告诉您给定的数字是正的,这是创建UnicodeScalar所必需的。所以,您可以尝试将Int8强制转换为UInt8,然后初始值设定项接受正确类型的参数

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

参数中的数据应具有数据类型。我使用Int8类型的内部数据。是。如果有[Int8]类型的数组,则可以将其转换为数据数据。withUnsafeBufferPointer{pointer in let_Data=Databuffer:pointer var result=Stringdata:_Data,encoding:.ascii}参数中的数据应具有数据类型。我使用Int8类型的内部数据。是。如果您有[Int8]类型的数组,则可以将其转换为数据数据。withUnsafeBufferPointer{pointer in let _Data=Databuffer:pointer var result=Stringdata:_Data,encoding:.ascii}您的输入是有符号整数。对于负值,例如-50,您希望得到什么样的结果?@MartinR致命错误:负值不可表示:D但说真的,我该怎么办?您的输入是有符号整数。对于负值,例如-50,您希望得到什么结果?@MartinR致命错误:负值不可表示:D但说真的,我该怎么办?谢谢您的回答!这对我有用!这是唯一的办法吗?看看我的问题,我做了一点shorter@SBlintsov什么如果无法建造UnicodeScalar,会发生什么?它将返回零。所以,你需要打开它。在这种情况下,可以安全地使用可选绑定,所以是的,如果有必要,请使用let。@SBlintsov顺便说一句,不要用我的答案编辑您的问题,而是通过单击标记来接受答案。我没有删除if let构造。我刚刚删除了答案中的第一个字符串,并将if let scalar=UnicodeScalarIntint替换为if let scalar=unicodescalarintintedata[I]。是吗?@SBlintsov是的,这是对的。我刚刚创建了这个常量,用于显示给定值的类型谢谢您的回答!这对我有用!这是唯一的办法吗?看看我的问题,我做了一点shorter@SBlintsov什么如果无法建造UnicodeScalar,会发生什么?它将返回零。所以,你需要打开它。在这种情况下,可以安全地使用可选绑定,所以是的,如果有必要,请使用let。@SBlintsov顺便说一句,不要用我的答案编辑您的问题,而是通过单击标记来接受答案。我没有删除if let构造。我刚刚删除了答案中的第一个字符串,并将if let scalar=UnicodeScalarIntint替换为if let scalar=unicodescalarintintedata[I]。是吗?@SBlintsov是的,这是对的。我刚刚创建了这个常量来显示给定值的类型