在 Objective-C 中,NSMutableString 是 NSString 的可變子類別,允許在建立後修改字串內容,而不需建立新物件。這對於頻繁操作字串的場景(如拼接、刪除、替換)能顯著提升效能。
NSString,可使用父類別的初始化方法(如 initWithFormat:)// 建立可變字串
NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"abc"];
NSMutableString *str2 = [NSMutableString string]; // 空字串
// 插入字串
[str1 insertString:@"hello world" atIndex:0];
// str1 變為 "hello worldabc"
// 刪除指定範圍
NSRange range = {11, 3};
[str1 deleteCharactersInRange:range];
// 刪除 "abc",str1 變為 "hello world"
// 追加字串
[str1 appendString:@"hehe"];
// 追加格式化數值
int index = 123456;
[str1 appendFormat:@"%d", index];
// 替換指定範圍
[str1 replaceCharactersInRange:NSMakeRange(0, 5) withString:@"a"];
// 將前 5 字元替換為 "a"
| 操作 | NSMutableString (可變) | NSString (不可變) |
|---|---|---|
| 追加 | appendString: / appendFormat: (無回傳值) | stringByAppendingString: / stringByAppendingFormat: (回傳新字串) |
| 記憶體 | 原地修改,效能佳 | 每次操作產生新物件 |
當需要頻繁修改字串內容時,優先使用 NSMutableString;若字串建立後不再變更,使用 NSString 更安全且語意清晰。