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

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]];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值