How to convert std::string to NSString?

Anthony McCormick picture Anthony McCormick · Aug 24, 2010 · Viewed 78.2k times · Source

Hi 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?

Thanks in advance.

Answer

Vladimir picture Vladimir · Aug 24, 2010

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

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