我需要直接访问底层UTF-16代码单元以获取Swift字符串。虽然可以通过以下方式获得指向UTF-8 C字符的指针:
string.utf8CString.withUnsafeBufferPointer { utf8chars in
...
}
似乎没有任何UTF-16代码单元的等价物,这是奇怪的,因为Swift字符串在内部存储为UTF-16。
我最接近的是将UTF16视图包装在一个数组中:
ContiguousArray(string.utf16).withUnsafeBufferPointer { utf16units in
...
}
但这比直接访问代码单元要慢得多。
是否有一些隐藏的方法来获取我缺少的底层UTF-16代码单元?