use*_*279 -2 objective-c nsstring nsmutablestring
Objective-C中NSString和NSMutable String之间的实际区别是什么?我已经搜索了很多但没有得到任何答案..我明白NSString是Immutable对象而NSMutableString是Mutable对象但我想通过一个例子来理解它们之间的区别..请帮助我..
现在问题已经解决..
Dha*_*ngh 14
不可变的字符串.....
NSString *str1 = @"Hello Testing";
NSString *str2 = str1;
Run Code Online (Sandbox Code Playgroud)
替换第二个字符串
str2 = @"Hello hehehe";
Run Code Online (Sandbox Code Playgroud)
并列出他们当前的值
NSLog(@"str1 = %@, str2 = %@", str1, str2);
//logs as below
//str1 = Hello Testing, str2 = Hello hehehe
Run Code Online (Sandbox Code Playgroud)
可变字符串
设置两个变量以指向相同的字符串
NSMutableString * str1 = [NSMutableString stringWithString:@"Hello Testing"];
NSMutableString * str2 = str1;
Run Code Online (Sandbox Code Playgroud)
替换第二个字符串
[str2 setString:@"Hello ikilimnik"];
Run Code Online (Sandbox Code Playgroud)
//并列出他们当前的值
NSLog(@"str1 = %@, str2 = %@", str1, str2);
//logs as below
//str1 = Hello ikilimnik, str2 = Hello ikilimnik
Run Code Online (Sandbox Code Playgroud)
请注意,当您使用不可变字符串类时,字符串的唯一方法replace是创建新字符串并更新您的变量str2以指向它.
然而,这不会影响str1指向的内容,因此它仍将引用原始字符串.
在NSMutableString示例中,我们不创建第二个字符串,而是改变现有Hello Testing字符串的内容.由于两个变量都继续指向同一个字符串对象,因此它们都会在调用中报告新值NSLog.
区分指针变量和它指向的实际对象很重要.一个NSString对象是不可变的,但这并不能更改它指向一个字符串变量的值阻止你.
| 归档时间: |
|
| 查看次数: |
10159 次 |
| 最近记录: |