1. ホーム
  2. objective-c

[解決済み] std::stringをNSStringに変換する方法は?

2022-12-14 22:35:22

質問

こんにちは、私は標準的な std::stringNSString に変更したいのですが、なかなかうまくいきません。

からの変換はうまくいくのですが 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]];