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.
使您在使用可变字符串,所以你不要有许多对象,而在内存使用,而是你创造一个THT你可以玩吗? @AnnopVaidya – JohnBigs 2013-03-03 17:01:31
是在nsmutablestring中,每个PLAY都使用相同的内存位置。现在在nsstring中分配内存。 – 2013-03-03 17:03:43