NSString是一个不可变的字符串对象。这不是表示这个对象声明的变量的值不可变,而是表示它初始化以后,你不能改变该变量所分配的内存中的值,但你可以重新分配该变量所处的内存空间。而NSMutableString是可变的,意味着你可以追加它的内存空间,或者修改它所分配的内存空间中的值。
因为NSMutableString和NSString的差别,所以他们之间的互相转换使用使用合适的方法。
将NSMutableString转换成NSString有下列几种方法。
(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1631106
)
第一种,使用NSString stringWithString:方法
NSMutableString * yourMutableString=@"It is yourMutableString";
NSString *immutableString = [NSString stringWithString:yourMutableString];
NSLog(@"immutableString=%d,%d",immutableString ,yourMutableString);
第二种,使用NSMutableString copy方法
NSString *immutableString2 = [[yourMutableString copy] autorelease];
NSLog(@"immutableString2=%d,%d",immutableString2 ,yourMutableString);
第三种,使用(NSString *)类型强制转换方法
NSString *immutableString3 = (NSString *)yourMutableString;
NSLog(@"immutableString3=%d,%d",immutableString3 ,yourMutableString);
第四种,使用NSString stringWithFormat:方法
NSString *immutableString4 = [NSString stringWithFormat:@"%@",yourMutableString];
NSLog(@"immutableString4=%d,%d",immutableString4 ,yourMutableString);
如果使用不当,将会出现这样的错误"Incompatible pointer types assigning NSMutableString to NSString"。
分享到:
相关推荐
该文件通过宏定义提供了一些简单的字符串格式化方法,这些方法可以帮助开发者快速地将数值类型转换成字符串。 - `NSStringFromInt`: 将整型数字转换为字符串。 - `NSStringFromFloat`: 将浮点型数字转换为字符串。 -...
在Objective-C中,可以利用`NSString`类提供的方法来处理字符串。要获取字符串的首字母,我们可以先将字符串转换为小写,然后提取第一个字符,最后将其转换为大写,因为通常首字母都是大写的。以下是一个简单的示例...
在iOS开发中,我们通常使用Foundation框架中的NSString和NSMutableString类来处理字符串。这两个类提供了丰富的字符串操作方法,包括查找、替换、格式化等。然而,当涉及到中文字符时,我们需要关注Unicode编码,...
这个方法接受一个NSString对象作为输入,将其转换为UTF8编码的C风格字符串,然后调用`CC_MD5`函数进行MD5计算。`CC_MD5`函数接收三个参数:原始数据的指针、原始数据的长度以及一个用于存储结果的缓冲区。计算完成后...
NSString *subString = [NSString stringWithFormat:@"\n%@\"%@\",", subSpace, value]; [retString appendString:subString]; } else if ([obj isKindOfClass:[NSArray class]]) { NSArray *arr = (NSArray *)...