Anthony McCormick Anthony McCormick - 3 months ago 17
Objective-C Question

How to convert std::string to NSString?

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

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

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