Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在Swift字符串中包含表情符号?_String_Swift_Nsstring - Fatal编程技术网

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

String 如何在Swift字符串中包含表情符号?,string,swift,nsstring,String,Swift,Nsstring,是一篇很好的文章,它引用了iOS表情符号及其代码。例如,小型摄像机的\ue008 我在代码中尝试了这一点: var myText: String = "\ue008" Xcode不接受这一点。如何包含它?来自swift文档: let dollarSign = "\u{24}" // $, Unicode scalar U+0024 let blackHeart = "\u{2665}" // ♥, Unicode scalar U+2665 let sparklin

是一篇很好的文章,它引用了iOS表情符号及其代码。例如,小型摄像机的
\ue008

我在代码中尝试了这一点:

var myText: String = "\ue008"

Xcode不接受这一点。如何包含它?

来自swift文档:

let dollarSign = "\u{24}"        // $,  Unicode scalar U+0024
let blackHeart = "\u{2665}"      // ♥,  Unicode scalar U+2665
let sparklingHeart = "\u{1F496}" // You could insert the emoji directly using 
⌘ ^ Space
.

Or, based on Greg's answer:

var myText: String = "\u{e008}"
let dollarSign=“\u{24}”//$,Unicode标量u+0024
让blackHeart=“\u{2665}”//♥,  Unicode标量U+2665

让SparkingHeart=“\u{1F496}”//您可以使用
⌘ ^ 空格

或者,根据格雷格的回答:

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

您根本不需要unicode常量。只需使用字符查看器并直接键入字符 如果我了解您的目标,那么:

在XCode中按“ctrl+cmd+space”。“红心”表情符号的示例用法

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
    }
}

正如格雷格在上面所说,您可以使用OSx字符查看器将表情符号直接输入Swift。默认情况下,角色查看器处于禁用状态。以下是如何启用它:


转到系统首选项>语言和地区>键盘首选项>键盘,然后选中菜单栏中的显示键盘、表情符号和符号查看器。选中后,您可以从Wifi和日期/时间图标旁边的右上菜单栏打开字符查看器。

1解码Unicode:

let decodedString = yourString.decodeEmoji
let encodedString = yourString.encodeEmoji
用法

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 c = 0x1F602
2对Unicode编码:

let decodedString = yourString.decodeEmoji
let encodedString = yourString.encodeEmoji
用法

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 c = 0x1F602
从十六进制“0x1F52D”到实际表情符号

let intEmoji = UnicodeScalar(c!).value
下一步可能会从你的十六进制中得到一个Uint32

titleLabel.text = String(UnicodeScalar(intEmoji)!)
从这里你可以做一些类似的事情

var myText: String = "\ue008"

这里有一个“Chris Slowik和Greg的答案很接近。 最简单的答案是从以下内容“重新表述”字符串:

var myText: String = "\u{008}"
为此:

func convertHexToEmoji(_ u:Int) -> String {
     return "\(UnicodeScalar(u)!)" }
正如其他人所说,在您所连接的链接上找到的Unicode并没有错。您只需要在字符串中对其进行重新表述

上面示例中的重要代码是“008”部分

我创建了一个简单的函数,用于将这些类型的Unicode转换为相应的表情:

let myText = convertHexToEmoji(008)
print(myText)
使用:

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

这花了我一点时间在MacOS 11中找到答案,所以我想我会与大家分享

如果您喜欢输入unicode字符而不是粘贴文字表情符号,您可以找到系统表情符号的unicode,如下所示:

  • 聚焦/单击文本字段(例如web浏览器中的搜索栏)

  • 按ctrl+cmd+space
  • 或进入菜单栏中的
    Edit->Emoji&Symbols

  • 在角色查看器中向上滚动,直到在右上角看到窗口展开图标:

  • 在展开的“字符查看器”窗口中,按左上角按钮并选择
    自定义列表…

  • 向下滚动至
    code Tables
    最小化列表,展开列表,打开
    Unicode
    ,然后按
    Done
    (系统出于任何原因将此窗口更改为暗模式)。

  • 现在,单击不同的表情符号,您应该会看到图像下方的unicode。

  • 然后将其注入unicode,如下所示:


  • Ue008是在私人使用区域。所以你不能期望太多。那篇“相当好的文章”似乎完全是垃圾。使用“角色查看器”“在Mac上获得正确的Unicode值。同上gnasher729-相当垃圾的文章。这里回答的问题是,他从一个网站获得的Unicode值只给出了不起作用的垃圾值。E008是个错误的号码。你是说
    ctrl+⌘ + 空格
    ?是的,这是另一种说法,即键盘快捷键可以在任何地方使用OSX。你能给我分享一下swift文档链接吗@Greg@R.Mohan请参阅tis链接“let c=0x1F602”此变量的数据类型是什么@梅赫迪S。