Как включить смайлики в строку Swift?

Здесь - довольно хорошая статья, в которой упоминаются смайлики iOS и их код. Например \ue008 для маленькой камеры.

Я пробовал это в своем коде:

var myText: String = "\ue008"

Это не принимается xCode. Как включить его?

Ответ 1

Что из быстрой документации:

let dollarSign = "\u{24}"        // $,  Unicode scalar U+0024
let blackHeart = "\u{2665}"      // ♥,  Unicode scalar U+2665
let sparklingHeart = "\u{1F496}" // 💖, Unicode scalar U+1F496

Ответ 2

Если я понимаю, чего вы пытаетесь достичь, тогда:

Нажмите " ctrl + cmd + space" в XCode. Пример использования смайликов "сердца"

cell.textLabel?.text = "❤️" + " \(liker) liked \(userBeingliked) photo"

Ответ 3

Вам не нужны константы unicode. Просто используйте средство просмотра персонажей и введите символ напрямую. 😝

let sparklingHeart = "💖"

Ответ 4

1 Декодирование Unicode:

extension String {
    var decodeEmoji: String{
        let data = self.data(using: String.Encoding.utf8);
        let decodedStr = NSString(data: data!, encoding: String.Encoding.nonLossyASCII.rawValue)
        if let str = decodedStr{
            return str as String
        }
        return self
    }
}

Использование

let decodedString = yourString.decodeEmoji

2 Кодирование Юникода:

extension String {
    var encodeEmoji: String{
        if let encodeStr = NSString(cString: self.cString(using: .nonLossyASCII)!, encoding: String.Encoding.utf8.rawValue){
            return encodeStr as String
        }
        return self
    }
}

Использование

let encodedString = yourString.encodeEmoji

Ответ 5

Как сказал Грег выше, вы можете напрямую вводить emoji в Swift, используя просмотрщик символов OSx. По умолчанию функция просмотра символов отключена. Вот как включить его:

Перейдите в раздел Системные настройки > Язык и регион > Настройки клавиатуры > Клавиатура, затем установите флажок Отобразить клавиатуру, Emoji и Symbol Viewers в строке меню. После проверки вы можете открыть программу просмотра персонажа из верхней правой панели меню рядом с вашими значками Wifi и Date/Time.

Ответ 6

Вы можете вставить emoji непосредственно с помощью ⌘ ^ Space.

Или, основываясь на ответе Грега:

var myText: String = "\u{e008}"

Ответ 7

Swift поддерживает символы Unicode в строках и даже в идентификаторах. Поэтому используйте этот ярлык ctrl-cmd-space для входа в средство просмотра символов вместо escape-последовательностей backslash-u, если только вам не требуется полная поддержка устройств, не поддерживающих эмодзи Apple. В качестве альтернативы, если у вас есть сенсорная панель MacBook Pro, используйте значок "Просмотр символов" всякий раз, когда вы его видите.

Ответ 8

от вашего хекса "0x1F52D" до настоящего эмодзи

let c = 0x1F602

следующим шагом будет получение Uint32 от вашего Hex

let intEmoji = UnicodeScalar(c!).value

из этого вы можете сделать что-то вроде

titleLabel.text = String(UnicodeScalar(intEmoji)!)

здесь у вас есть "😂"

он работает с шестнадцатеричным диапазоном тоже

let emojiRanges = [
            0x1F600...0x1F636,
            0x1F645...0x1F64F,
            0x1F910...0x1F91F,
            0x1F30D...0x1F52D
        ]

        for range in emojiRanges {
            for i in range {
                let c = UnicodeScalar(i)!.value
                data.append(c)
            }
        }

чтобы получить несколько UInt32 из вашего диапазона Hex для примера