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