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"。
分享到:
相关推荐
Objective-C里核心的处理字符串的类就是NSString和NSMutableString这两个类,这两个类完成了Objective-C中字符串大部分功能的处理。这两个类的最主要的区别是NSString创建赋值后不能动态修改长度和内容,除非给重新...
该文件通过宏定义提供了一些简单的字符串格式化方法,这些方法可以帮助开发者快速地将数值类型转换成字符串。 - `NSStringFromInt`: 将整型数字转换为字符串。 - `NSStringFromFloat`: 将浮点型数字转换为字符串。 -...
1. **获取NSString的UTF8编码**:NSString可以通过`dataUsingEncoding:`方法转换为NSData,通常选择UTF8编码。 ```objc NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; ``` 2. **遍历NSData的每一...
`strtol`函数用于将十六进制字符串转换为整数,然后通过`unichar`类型转换成字符。 在实际应用中,这个扩展可以极大地简化处理Unicode编码字符串的流程,使得开发者能够更加便捷地处理包含Unicode的中文字符串,...
这里我们将介绍两种方法: 1. 使用NSString的`stringWithFormat:`方法: 这种方法利用了C语言的格式化字符串功能。例如,要将整数`intValue`转换为十六进制字符串,你可以这样做: ```objc int intValue = 1234...
1. **性能优化**:对于需要频繁修改的字符串,考虑使用 `NSMutableString` 而不是 `NSString`。 2. **国际化**:确保使用 `NSLocalizedString` 函数来处理需要本地化的字符串。 3. **安全性**:在处理用户输入时,应...
但是,如果字符串对象是由可变字符串NSMutableString转换过来的,情况就有所不同。 例如,我们有一个NSMutableString对象,然后将其赋值给一个声明为`strong`的NSString属性: ```objc NSMutableString *...
在`NSStringAndNSMutableString`这个示例中,我们可以预期看到一系列的代码实例,演示了如何在Objective-C项目中创建、操作和管理这两种字符串类型。这包括字符串的初始化、比较、格式化、拼接、分割、查找和替换等...
Objective-C是一种用于开发iOS应用的主要编程语言,其字符串操作主要依赖于NSString类和NSMutableString类。NSString用于创建不可变字符串对象,而NSMutableString则用于创建可变字符串对象。以下是Objective-C中...
Objective-C提供了两种主要的字符串类型:`NSString` 和 `NSMutableString`。`NSString` 是不可变的,一旦创建就无法修改,而 `NSMutableString` 支持在字符串上进行各种修改操作。 首先,我们来看`NSString`的使用...
这个类方法用于将JSON数据转换为Objective-C对象(如数组或字典)。 2. `- (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error` 这个实例方法用于将Objective-C...
- **格式化字符串**:可以通过`[NSString stringWithFormat:]`方法来创建格式化的字符串,例如`[NSString stringWithFormat:@"Hello, %s!", name]`。 - **NSMutableString**: - **定义**:NSMutableString继承自...
- `NSString` 和 `NSMutableString` 的方法简单易用,适合快速验证或操作字符串,但功能相对有限。 - 选择哪种方式取决于具体需求的复杂度和性能要求。如果需要处理复杂的匹配和操作,`NSRegularExpression` 是最佳...
追加字符串通常使用`appendString:`或`stringByAppendingString:`方法(对于NSMutableString对象),对于NSString对象,需要先创建NSMutableString实例: ```objc NSMutableString *str1 = [NSMutableString ...
这个转换过程可以通过`NSString`的`dataUsingEncoding:`方法完成: ```swift let data = chineseCharacter.data(using: .utf8) ``` 这段代码会将`chineseCharacter`转换成UTF-8编码的数据,可以用于网络传输或者...
- 使用`stringWithFormat:`方法,可以根据指定的格式插入变量,如将整型`int`或浮点型`float`、`double`转换为字符串,例如`[NSString stringWithFormat:@"this person age is %d", age]`。 - 当需要插入NSString...
- 创建一个`NSData`对象,将`NSString`的UTF8编码转换成二进制数据。 - 使用`CC_MD5`函数(来自`CommonCrypto`框架)计算数据的MD5摘要。 - 将16字节的MD5摘要转换为32字符的十六进制字符串。 - 返回这个十六...
`NSString`和`NSMutableString`是OC中处理字符串的主要类。`NSString`代表不可变字符串,一旦创建就不能修改,而`NSMutableString`则允许对字符串进行修改。 1. **NSString(静态字符串)操作**: - **声明字符串*...
该库可能包含一个类别(Category)或者扩展(Extension)在NSString或NSMutableString上,添加了一个方法来将Unicode编码转换为对应的汉字。例如,可能有一个方法名为`+ (NSString *)stringWithUnicode:(NSString *)...
- 使用`compare:`方法,该方法返回三种比较结果:NSOrderedAscending、NSOrderedSame、NSOrderedDescending。 #### NSMutableString `NSMutableString`提供了可变字符串的功能,允许在运行时添加、删除或替换文本...