有更好的方法将unichar转换为Character吗? 尝试过:
var unichar = ...
let str = NSString(characters: &unichar, length: 1) as String
let character = Array(str.characters)[0])
答案 0 :(得分:2)
您可以转换unichar
- > UnicodeScalar
- > Character
:
let c = unichar(8364)
if let uc = UnicodeScalar(c) {
let char = Character(uc)
print(char) // €
} else {
print("illegal input")
}
0xD800...0xDFFF
范围内的输入值
(高和低代理人)是不允许的,因为他们没有
对应于有效的Unicode标量值。
如果保证不会出现那些输入值那么你 可以简化转换为
let char = Character(UnicodeScalar(c)!)
用默认字符替换可能的无效输入值 (例如问号),使用
let char = Character(UnicodeScalar(c) ?? "?")
答案 1 :(得分:0)
public class func stringForIcon(_ icon: NSInteger) -> Character {
return Character(UnicodeScalar(icon)!)
}