在iOS开发中,我们通常使用stringWithFormat来拼接字符串。例如:
```objc
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有一个特性,就是它存储的字符串是不可变的,这意味着在拼接字符串时,每次都会创建一个新的字符串对象,从而导致效率低下。例如:
```objc
NSString *str = @"";
NSLog(@"--------");
for (int i = 0; i < 50000; i++) {
str = [NSString stringWithFormat:@"%@%d", str, i];
}
NSLog(@"--------");
```
当我们需要进行大量数据拼接时,效率会变得非常低。为了解决这个问题,我们可以使用NSMutableString。NSMutableString是一个可变的字符串对象,它存储在内存中,因此在拼接字符串时不会创建新的对象,从而提高了效率。例如:
```objc
NSMutableString *str = [NSMutableString string];
NSLog(@"---------");
for (int i = 0; i < 50000; i++) {
[str appendFormat:@"%d", i];
}
NSLog(@"------");
```
总之,NSMutableString是对NSString的一个扩展,它允许我们在内存中存储和修改字符串,从而提高了拼接字符串的效率。当然,它还提供了一个appendString方法来方便地对字符串进行拼接。
```objc
NSMutableString *str = [NSMutableString string];
[str appendString:@"lilei"];
[str appendString:@"rose"];
[str appendString:@"jack"];
NSLog(@"%@", str);
```