NSMutableString は NSString を継承し、生成された文字列オブジェクトを変更できるように NSString を拡張します。
NSMutableString の作成:
NSMutableString *string = [NSMutableString string];
次のものでは作成できません:
NSMutableString *string = @"cannot create a new obj";
左側のポインタ型は可変文字列型で、右側は NSString 型であるためです。オブジェクト文字列が 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 が同じ内容でメモリ内に新しく作成されるのではなく、ポインタが同じ内容の既存の文字列空間を指すためです。より高い効率。