Разбор символов юникода с сервера iOS Swift - PullRequest
0 голосов
/ 25 октября 2019

Я использую платный набор линейных иконок с этого сайта .

Это здорово! Особенно в iOS я помещаю файл .ttf в свой пакет проектов, загружаю шрифт и использую его в ярлыках и кнопках. Я даже написал статью о том, как я это делаю .

Моя проблема возникает, когда я хочу динамически изменить метку на основе некоторого значения сервера. Мой первоначальный инстинкт был сохранить значение Unicode как текст на сервере. Я просто сохраняю значение, такое как ed02, и когда я опускаю его в свое приложение, я добавляю его, скажем, к метке, подобной этой.

let label = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
label.font = IconUltimate().icoUltimateFont(18)
let valueFromServer = "ed02"
label.text = "\u{\(valueFromServer)}"

Проблема в том, что строка:

label.text = "\u{\(valueFromServer)}"

недействительно. Что я делаю неправильно? Есть ли способ ввести значение Unicode с сервера в мой интерфейс? Мое решение прямо сейчас состоит в том, чтобы отобразить значение Unicode с сервера, используя оператор switch следующим образом:

    public func unicodeMapper(rawUnicode: String) -> String {
        switch rawUnicode {
        case "ecf5":
            let thumbs_up = "\u{ecf5}"
            return thumbs_up
        default:
            return ""
        }
    }

И назвать его так:

let valueFromServer = "ed02"
label.text = unicodeMapper(rawUnicode: valueFromServer)

У кого-нибудь есть какие-либо предложения, поэтому яне нужно использовать оператор switch, и я могу просто ввести значение с сервера?

Спасибо

1 Ответ

1 голос
/ 25 октября 2019

Как это:

let code = "ecf5" // or whatever you got from the server
let codeint = UInt32(code, radix: 16)!
let c = UnicodeScalar(codeint)!
label.text = String(c)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...