Код для обмена строкой между C ++ и объективным C ++ и наоборот, есть ли лучший способ? - PullRequest
1 голос
/ 07 августа 2020

Я написал код для обмена строкой с C ++ на Objective-C ++ и наоборот:

// C++ UTF-16 string to objective-c++
std::u16string str = u"你好 سلام Hello Привет สวัสดีชาวโลก";
NSString *nsstr = [[NSString alloc] initWithCharacters:(const unichar*)str.data() length:str.length()];

// Objective-c++ UTF-16 string to C++  
NSData *data = [nsstr dataUsingEncoding:NSUTF16StringEncoding];
std::u16string bstr ([data length] / 2, 0);
[data getBytes:(char16_t*)bstr.c_str() length:[data length]];

Предыдущий код работает без проблем, но я не знаю, есть ли другой лучше или нет?

...