stringWithFormat
- 一般来说,我们习惯了使用stringWithFormat来拼接字符串,如下:
int main(int argc, const char * argv[])
{
NSString *name = @"jack";
int age = 20;
NSString *str = [NSString stringWithFormat:@"我的名字%@,今年:%d",name,age];
NSLog(@"%@",str);
return 0;
}
效果如下:
- 但是NSString有一个恒定性,就是他存储的字符串,是不能更改的,那么在拼接的时候,每拼接一次,就会创建一个字符串,所以效率就显得非常低下,如:
NSString *str = @"";
NSLog(@"--------");
for (int i = 0 ; i < 50000; i++)
{
str = [NSString stringWithFormat:@"%@%d",str,i];
}
NSLog(@"--------");
- 一旦我们进行大批量的数据拼接,那么就消耗很多的时间:
-
- 那么就会效率就显得十分的低
-
NSMutableString
NSMutableString *str = [NSMutableString string];
NSLog(@"---------");
for (int i = 0 ; i<50000; i++)
{
[str appendFormat:@"%d",i];
}
NSLog(@"------");
因为NSMutableString存储在内存中得字符串是可变的,那么在拼接的时候,就不会去新建1个对象,所以效率就非常高
所以我们说 这个NSMutableString是对NSString做的最大的扩容就是他存储的字符串是可变的
当然 他还提供了一个appendString方法来对字符串进行拼接
NSMutableString *str = [NSMutableString string];
[str appendString:@"lilei"];
[str appendString:@"rose"];
[str appendString:@"jack"];
NSLog(@"%@",str);