在代码中看到这样一个方法,突然想到,我如何正确的将NSMutableString转到NSString;
- (NSString *)getspaceLevel:(NSInteger)level{
NSMutableString *mustr = [[NSMutableString alloc]init];
for (NSInteger i=0; i
这行代码中最后的copy的意义在哪儿,是否能达到目的-转换成NSString不可变类型,而且发生了深拷贝。
回顾一下深浅拷贝的知识
NSString copy -> 浅拷贝,仅仅拷贝内存地址
NSString mutableCopy -> 深拷贝,拷贝对象本身,内存地址不同
似乎这里的copy操作(还是mutableCopy操作),都不能将可变字符串转换成不可变字符串,所以此处的copy,有点智障!虽然是我写的。。。
回到话题,如何处理比较合适
搓就搓点,我上个代码
@implementation NSMutableString (Util)
- (NSString *)toString{
return [self substringFromIndex:0];
}
@end
这个利用了截取字符串返回的是不可变NSString的特征。
结束