在我的本地库中,我曾经使用这个函数来将一个
std::string
转换为一个NSString
:- (NSString*)return_my_cpp_string {
NSString* result = [NSString stringWithCString:my_cpp_string.c_str() encoding:[NSString defaultCStringEncoding]];
return result;
}
现在我需要更新这个函数,以便它返回一个NSString
而不是std::u16string
,但我找不到任何明显的方法来实现。
无法使用'rvalue'初始化'type 'const unichar * _Nonnull' (即 'const unsigned short *')的参数,因为类型不匹配。该'rvalue'的类型为'const std::__1::basic_string<char16_t, std::__1::char_traits<char16_t>, std::__1::allocator<char16_t> >::value_type *' (即 'const char16_t *')
。 - Marinos K(const unichar*)
转换来修复这个问题,它应该能够正常工作 - 只是想知道是否可以这么做? - Marinos K