NSString与NSMutablestring之间区别的实际例子可能是什么样的?

问题描述:

我一直在环顾这里的问题,找不到一个简单的例子来指出我的差异,而我正在测试自己的一些代码来测试差异化。NSString与NSMutablestring之间区别的实际例子可能是什么样的?

据我了解,在“不变”的字符串,比如“的NSString”,我不能瓶坯任何“的NSString”的方法来修改字符串,如:

NSString *s = @"cat"; 

    s = [NSString stringWithString:@"blamp"]; 

    NSLog(@"%@", s); 

但它的工作。

请尝试给我和其他新手那里有一个非常简单的例子,说明什么行不通,为什么。 TNX

声明:

s = [NSString stringWithString:@"blamp"]; 

实际创建的字符串“blamp”和s旧地址的新的存储位置获取此新地址取代。

而你感觉同样的s已更新!实际上,指针现在指向其他一些内存地址。


字符串操作意味着改变相同的字符串:在您试图

NSString *s = @"cat"; 
[s appendString:@"s"];//tries to append to the same. this will through error. 
//the above works with NSMutableString. 
+1

使您在使用可变字符串,所以你不要有许多对象,而在内存使用,而是你创造一个THT你可以玩吗? @AnnopVaidya – JohnBigs 2013-03-03 17:01:31

+0

是在nsmutablestring中,每个PLAY都使用相同的内存位置。现在在nsstring中分配内存。 – 2013-03-03 17:03:43