1. 在Swift 中创建 NSString 分类,String+Emoji.swift
//用 String 加不了 @objc 修饰关键字 @objcMembers 用来修饰整个类
extension NSString{
///返回当前字符串中 16 进制对应的 emoji 字符串
@objc var emoji: NSString {
//16进制字符串
//let str = "0x1f603"
//文本扫描器 - 扫描指定格式的字符串
let scanner = Scanner(string: self as String)
var value: UInt64 = 0;
scanner.scanHexInt64(&value)
print(value)
//转换 unicode 字符
let chr = Character(Unicode.Scalar(UInt32(value))!)
//转换成字符串
return "\(chr)" as NSString
}
}
2. Swift 中调用
override func viewDidLoad() {
super.viewDidLoad()
//16进制字符串
let str = "0x1f603"
print(str.emoji)
}
3. OC 中调用,OC 与 Swift 混编
3.1 修改 TARGETS 中 项目 Build Settings 中 Product Name 值 Emoji
3.2 引入头文件 #import "Emoji-Swift.h"
3.3 调用
- (void)viewDidLoad {
[super viewDidLoad];
NSString *str = @"0x1f603";
NSLog(@"%@",[str emoji]);
}