Как конвертировать Int8 в Character? - PullRequest
0 голосов
/ 27 марта 2019

Мне нужно конвертировать Int8 в Character. Как я могу это сделать?

Я пытался использовать UnicodeScalar

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

... но получил эту ошибку:

Невозможно вызвать инициализатор для типа 'UnicodeScalar' с аргументом список типа (Int8)

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Unicode.Scalar можно инициализировать только с помощью параметров определенных типов, которые вы можете найти в документах .

Я бы предложил вам использовать init(_:), который принимает UInt8, что говорит о том, что данное число положительное (это необходимо для создания UnicodeScalar).Итак, вы можете попытаться привести ваш Int8 к UInt8, и тогда ваш инициализатор примет параметр правильного типа

let int: Int8 = data[i]
if let uint = UInt8(exactly: int) {
    let char = Character(UnicodeScalar(uint))
}
1 голос
/ 27 марта 2019

Может быть, вам нужно просто преобразовать все данные в строку:

var result = String(data: data, encoding: .ascii)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...