Search code examples
objective-cnsstringobjective-c++stdstring

How to convert std::string to NSString?


I am trying to convert a standard std::string into an NSString but I'm not having much luck.

I can convert successfully from an NSString to a std::string with the following code

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

However I get a compile time error when I try the following

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

The error I get is

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

Am I missing something here?


Solution

  • Get c-string out of std::string for conversion:

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