NSMutableString继承与NSString,对NSString进行了扩展,使得生成的字符串对象可以修改。
NSMutableString的创建:
NSMutableString *string = [NSMutableString string];
不可以用以下方式创建:
NSMutableString *string = @"cannot create a new obj";
因为,左边指针类型是可变字符串类型,而右边是NSString类型。当对象string调用NSMutableString类型的方法时,就会出错。
NSMutableString类型有以下几个方法:
//在原来字符串中“loc”位置中插入一段字符串“aString”。
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
//删除原来字符串中的一段字符。
- (void)deleteCharactersInRange:(NSRange)range;
//在后面拼接一段字符串。
- (void)appendString:(NSString *)aString;
//在后面拼接一段根据格式定义的字符串。
- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
//原来字符串全部修改为其它字符串
- (void)setString:(NSString *)aString;
NSMutableString和NSString的使用场景:
1.在超过5次以上的循环体中存在大量拼接和修改字符串时,尽量避免使用创建NSString对象,因为每次创建,如果字符串内容不同,会新开辟内存空间,循环次数过多会导致效率低。而使用NSMutableString对象,则只创建一次,不会重复开辟内存空间,因此,在次数多的循环体中效率较高。
2.平时普通字符串使用NSString对象,因为NSString在存在相同内容的内存中,不会新创建,而是将指针指向已经有的相同内容的字符串空间。效率较高。