objective-c - 如何将 std::string 转换为 NSString?

标签 objective-c nsstring objective-c++ stdstring

我正在尝试将标准 std::string 转换为 NSString,但运气不佳。

我可以使用以下代码成功地将 NSString 转换为 std::string

NSString *realm = @"Hollywood";
std::string REALM = [realm cStringUsingEncoding:[NSString defaultCStringEncoding]];

但是当我尝试以下操作时出现编译时错误

NSString *errorMessage = [NSString stringWithCString:REALM encoding:[NSString defaultCStringEncoding]];

我得到的错误是

Cannot convert 'std::string' to 'const char*' in argument passing

我错过了什么吗?

最佳答案

从 std::string 中获取 c-string 进行转换:

NSString *errorMessage = [NSString stringWithCString:REALM.c_str() 
                                   encoding:[NSString defaultCStringEncoding]];

关于objective-c - 如何将 std::string 转换为 NSString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3552195/

相关文章:

objective-c - 如何从点数组创建 CGPathRef

cocoa-touch - NSString 中的上标序号后缀

ios - 文件名 NSString 在空间中添加不必要的 %20

c - 它是否禁止从 Objective-C++ 类方法体调用经典 C 函数?

ios - Objective-C 中的 block 总是能保证捕获变量吗?

iphone - 我们可以使用应用程序更改设备时间吗?

java - 如何更改由 J2Objc 生成的文件

ios - 如何让 SceneKit 不在整个屏幕上

iphone - 为什么我的NSString无法读取我的.txt文件?

c++ - 从 C++ 文件使用 Objective-C++ 文件