var unicode: UniChar = 0x1F63E
“Integer literal'128701'在存储到'UniChar'(又名'UInt16')时溢出”
但如果我使用较短的unicode值初始化,例如:
var unicode: UniChar = 0x2705
一切都很好。
我如何做第一个?
答案 0 :(得分:0)
函数需要(指针)一个UniChar
又名UInt16
的数组,
包含字符串的UTF-16表示。
正如@rmaddy所说,UniChar
只能保存最大值为0xFFFF的值。
较大的Unicode标量需要表示为“代理对”。
字符串的.utf16
视图提供UTF-16表示:
let c = "\u{1F63E}" // Or: let c = ""
let utf16Chars = Array(c.utf16)
event.keyboardSetUnicodeString(stringLength: utf16Chars.count, unicodeString: utf16Chars)