在我的原生库中,我曾经使用此函数从std::string
:中返回NSString
- (NSString*)return_my_cpp_string {
NSString* result = [NSString stringWithCString:my_cpp_string.c_str() encoding:[NSString defaultCStringEncoding]];
return result;
}
我现在需要更新这个函数,使其返回std::u16string
中的NSString
,但我找不到任何明显的方法
使用stringWithCharacters:length
而不是stringWithCString:encoding
。
CCD_ 7将指向UTF-16代码单元的C样式数组的指针作为输入。std::u16string
是一个UTF-16编码的字符串,因此您可以按原样使用它的数据,例如:
- (NSString*)return_my_cpp_string {
const unichar *pchars = (const unichar *) my_cpp_string.c_str();
NSString* result = [NSString stringWithCharacters:pchars length:my_cpp_string.size()];
return result;
}