可变与不可变关系
在 Objective-C 中,字符串分为不可变字符串(NSString)和可变字符串(NSMutableString)。
一、不可变字符串(NSString)
特点:
一旦创建,其内容不能被修改。
多个对象可以安全地共享同一个不可变字符串,因为它们知道这个字符串不会被改变,这有助于提高内存使用效率和多线程环境下的安全性。
示例:
NSString *str1 = @"Hello";
NSString *str2 = str1;
// str1 和 str2 都指向同一个不可变的字符串内容二、可变字符串(NSMutableString)
特点:
可以在创建后修改其内容,例如添加、删除或替换字符。
提供了一系列方法来进行这些修改操作。
示例:
NSMutableString *mutableStr = [NSMutableString stringWithString:@"Hello"];
[mutableStr appendString:@" World"];
// mutableStr 现在的内容是 "Hello World"三、两者的转换
从不可变字符串创建可变字符串:
NSString *immutableStr = @"Hello";
NSMutableString *mutableCopy = [NSMutableString stringWithString:immutableStr];从可变字符串创建不可变字符串:
NSMutableString *mutableStr = [NSMutableString stringWithString:@"Hello"];
NSString *immutableCopy = [NSString stringWithString:mutableStr];在实际编程中,根据具体的需求选择使用不可变字符串还是可变字符串。如果字符串内容确定不会改变,使用不可变字符串可以提高性能和安全性;如果需要动态修改字符串内容,则使用可变字符串。
Last updated