Skip to content

Instantly share code, notes, and snippets.

@dodikk
Created November 6, 2013 14:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dodikk/7337210 to your computer and use it in GitHub Desktop.
Save dodikk/7337210 to your computer and use it in GitHub Desktop.
Converts NSString to std::string
- (std::string)toStlString
{
if (nil == self)
{
return "";
}
NSUInteger bytesSize = [self lengthOfBytesUsingEncoding: NSUTF8StringEncoding] + sizeof( char );
std::vector<char> bytesVt( bytesSize, 0x00 );
BOOL getBytesResult =
[ self getCString: &bytesVt.at( 0 )
maxLength: bytesSize
encoding: NSUTF8StringEncoding ];
if ( !getBytesResult )
{
NSLog(@"[toStlString] : not enough memory reserved.");
return "";
}
std::string urlCppString
(
bytesVt.begin(), bytesVt.end()
);
return urlCppString;
}
@dodikk
Copy link
Author

dodikk commented Nov 6, 2013

-(void)convertNSString:( NSString* )absoluteString
           toStlString:( std::string& )urlCppString_
{
    if ( nil != absoluteString )
    {
        std::string tmpUrlCppString
        (
         [absoluteString cStringUsingEncoding: NSUTF8StringEncoding],
         [absoluteString lengthOfBytesUsingEncoding: NSUTF8StringEncoding]
         );

        urlCppString_ = tmpUrlCppString;
    }
}

This works better

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment