NSString 用法总结与陷阱

727 阅读1分钟

原文地址:http://m.blog.csdn.net/tangaowen/article/details/6438414

1、 如何 从 std::string 转为 NSString ,也就是 Unicode (1) 使用 stringWithCString

std::string   strTime="1989:03:21";

NSString* showTime = [NSString stringWithCString: strTime.c_str()   encoding:NSUTF8StringEncoding];

(2) 使用 stringWithFormat

	NSInteger year=1990;
	NSInteger month=10;
	NSInteger day=1;
	NSString *  nsDateString= [NSString  stringWithFormat:@"%4d年%2d月%2d日",year,month,day];

如果是从 string 转换为NSString,千万不要使用下面这样的代码:

	std::string   strName="ggboy";
	NSString  * nsName= [NSString  stringWithFormat:@"%s",strName.c_str()];

要使用也使用下面的代码:

	std::string   strName="ggboy";
	NSString  * nsName= [NSString  stringWithFormat:@"%@", [NSString stringWithCString:strName.c_str()  encoding:NSUTF8StringEncoding]   ];

2、如何从 NSString转换为 std::string 使用 UTF8String 方法

NSString  * nsfaceName=@"HELLO";

const char  *  lpfaceName = [nsfaceName UTF8String];

std::string   strFaceName=  [nsfaceName UTF8String];

3、 NSString 怎么比较是否相等

	NSString  *  beijin=@"北京市";
	NSString  *  shanghai=@"上海市";
if([shanghai   isEqualToString:beijin])
{
   //相等
}

4、 NSString 怎么让 字符串相连相加

NSString  *  beijin=@"北京市";
NSString  *  shanghai=@"上海市";
NSString *  nsResult=nil;
nsResult=[beijin  stringByAppendingString:shanghai];