OC NSString类字符串拼接问题探究

来源:互联网 发布:算法导论 第3版 pdf 编辑:程序博客网 时间:2024/05/21 11:40

NSString 提供的拼接方法主要有两个:

- (NSString *)stringByAppendingString:(NSString *)aString;

- (NSString *)stringByAppendingFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);

一个是直接拼接NSString类型,

一个是拼接其他你想format的字符串。


直接上代码:

(NSString *)buildNameStr =@""; 

[buildNameStr stringByAppendingString:@"testtesttesttesttesttest"];

NSLog(@"%@", buildNameStr);

你会发现,没有任何效果,这是怎么回事?

新建buildNameStr的时候,开辟了一块内存空间。由于NSString的特性,NSString为定长的。不像java中的BufferString。

再拼接之后,实际上是开辟了另外一个内存地址存放拼接后的字符串。

所以,你打印之后,buildNameStr 还是@"".

你需要把buildNameStr对象的地址指向拼接后的字符串地址。即是:

 [buildNameStr stringByAppendingString:@"dsafsafsdfadsf"];

buildNameStr = [buildNameStr stringByAppendingString:[NSString stringWithFormat:@"%@,",buildName]];



0 0
原创粉丝点击