1/* 2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11#import "NSString+StdString.h" 12 13@implementation NSString (StdString) 14 15- (std::string)stdString { 16 return [NSString stdStringForString:self]; 17} 18 19+ (std::string)stdStringForString:(NSString *)nsString { 20 NSData *charData = [nsString dataUsingEncoding:NSUTF8StringEncoding]; 21 return std::string(reinterpret_cast<const char *>(charData.bytes), 22 charData.length); 23} 24 25+ (NSString *)stringForStdString:(const std::string&)stdString { 26 // std::string may contain null termination character so we construct 27 // using length. 28 return [[NSString alloc] initWithBytes:stdString.data() 29 length:stdString.length() 30 encoding:NSUTF8StringEncoding]; 31} 32 33@end 34