swift - 🫥 Swift isEmoji isEmojiPresentation

标签 swift string emoji

为什么方法 isEmojiPresentation 返回 false?

"🫥".unicodeScalars.first?.properties.isEmoji //可选(false)

"🫥".unicodeScalars.first?.properties.isEmojiPresentation //可选(false)

enter image description here

文档

isEmoji - https://developer.apple.com/documentation/swift/unicode/scalar/properties-swift.struct/isemoji

isEmojiPresentation - https://developer.apple.com/documentation/swift/unicode/scalar/properties-swift.struct/isemojipresentation

UDP:

enter image description here

最佳答案

来自isEmoji documentation你发布了:

testing isEmoji alone on a single scalar is insufficient to determine if a unit of text is rendered as an emoji; a correct test requires inspecting multiple scalars in a Character.

因此,您可以使用以下代码来检查是否有表情符号呈现:

"🫥".unicodeScalars.contains(where: { $0.properties.isEmoji }) // true
"5".unicodeScalars.contains(where: { $0.properties.isEmoji }) // true, as expected (5️⃣)
"a".unicodeScalars.contains(where: { $0.properties.isEmoji }) // false

此代码用于检查默认情况下是否为表情符号呈现:

"🫥".unicodeScalars.contains(where: { $0.properties.isEmojiPresentation }) // true
"5".unicodeScalars.contains(where: { $0.properties.isEmojiPresentation }) // false
"a".unicodeScalars.contains(where: { $0.properties.isEmojiPresentation }) // false

这里是为方便起见的扩展:

extension Character {
    var hasEmojiPresentation: Bool {
        unicodeScalars.contains(where: { $0.properties.isEmoji })
    }

    var hasEmojiPresentationAsDefault: Bool {
        unicodeScalars.contains(where: { $0.properties.isEmojiPresentation })
    }
}

用法:

Character("🫥").hasEmojiPresentation // true
Character("🫥").hasEmojiPresentationAsDefault // true

Character("5").hasEmojiPresentation // true
Character("5").hasEmojiPresentationAsDefault // false

Character("a").hasEmojiPresentation // false
Character("a").hasEmojiPresentationAsDefault // false

注意:结果可能因使用的 Xcode 版本而异,因为它们包含不同的表情符号集。

关于swift - 🫥 Swift isEmoji isEmojiPresentation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72801224/

相关文章:

java - java中n长度的字符串

ios - UITextField 中的自定义图像,如 Venmo 应用程序

ios - 有没有一种更有效的方法可以在不手动指定每个 View 的情况下向 UICollectionViewCell 添加相同的 View ?

php - 带数据的 Alamofire POST 请求

ios - titleForHeaderInSection 的文本太长

c# - 使用加号时会创建多少个 String 对象?

ios - 我需要知道如何获取有关哪个播放器当前正在播放的信息(播放器、spotify、napster ...)

c++ - 如何查看一个字符串是否包含多个不同的字母?

javascript - 如何将表情符号字符写入文本区域

ruby - 如何解析表情符号并转换为图像?