如何在Swift字符串中包含表情符号?

Che*_*rif 18 string nsstring swift

是一篇非常好的文章,它引用了iOS表情符号及其代码.例如\ue008对于小型相机.

我在我的代码中试过这个:

var myText: String = "\ue008"
Run Code Online (Sandbox Code Playgroud)

xCode不接受此操作.如何包含它?

Joh*_*Doe 37

如果我理解你想要实现的目标,那么:

在XCode中按" ctrl + cmd + space ".'hearts'表情符号的示例用法

cell.textLabel?.text = "??" + " \(liker) liked \(userBeingliked)'s photo"
Run Code Online (Sandbox Code Playgroud)


Gre*_*reg 17

这是来自快速文档:

let dollarSign = "\u{24}"        // $,  Unicode scalar U+0024
let blackHeart = "\u{2665}"      // ?,  Unicode scalar U+2665
let sparklingHeart = "\u{1F496}" // , Unicode scalar U+1F496
Run Code Online (Sandbox Code Playgroud)


gna*_*729 10

您根本不需要unicode常量.只需使用角色查看器并直接输入字符即可.

let sparklingHeart = ""
Run Code Online (Sandbox Code Playgroud)


Chr*_*wik 7

您可以直接使用 插入表情符号? ^ Space

或者,基于格雷格的回答:

var myText: String = "\u{e008}"
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是`ctrl + ⌘ + Space`? (9认同)

Lij*_*pin 6

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
    }
}
Run Code Online (Sandbox Code Playgroud)

用法

let decodedString = yourString.decodeEmoji
Run Code Online (Sandbox Code Playgroud)

2编码Unicode:

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
    }
}
Run Code Online (Sandbox Code Playgroud)

用法

let encodedString = yourString.encodeEmoji
Run Code Online (Sandbox Code Playgroud)


小智 5

如上面的Greg所述,您可以使用OSx字符查看器将表情符号直接输入到Swift中。默认情况下,字符查看器处于禁用状态。启用方法如下:

进入系统偏好设置>语言和区域>键盘偏好设置>键盘,然后在菜单栏中选中显示键盘,表情符号和符号查看器。选中后,您可以从Wifi和日期/时间图标旁边的右上角菜单栏打开字符查看器。