Anthony McCormick Anthony McCormick - 1 year ago 173
Objective-C Question

How to convert std::string to NSString?

Hi I am trying to convert a standard

into an
but I'm not having much luck.

I can convert successfully from an
to a
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 Source

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

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