替换NSString中的字符

时间:2011-07-26 16:54:21

标签: objective-c ios memory nsstring

我想在代码中擦除NSString对象(将每个字符替换为0)。

为此,我尝试了这个:

NSString *myString;
for (int i=0; i<[myString length]; i++) 
{
myString[i] = 0;
}

但是它没有编译:“ myString [i] = 0;

中的”赋值中的不兼容类型“

我理解,但是我不能使用函数 stringByReplacingOccurancesOfString ,因为它创建了一个新对象,我想替换第一个对象中的字符。

任何帮助?

2 个答案:

答案 0 :(得分:7)

NSString是不可变的,这意味着一旦创建它就无法更改其内容。您已为此目的NSMutableString

此外,您无法使用以下语法访问NSStringNSMutableString中的字符:

myString[i] = 0;

NSStringNSMutableString是对象,您可以通过向对象发送消息来处理对象。例如,你有characterAtIndex:方法返回给定索引处的字符,或者NSMutableString的{​​{1}}用另一个给定字符串替换给定范围内给定字符串的所有出现。

答案 1 :(得分:2)

根据定义,NSString是一个不可变类,因此其中的数据是不可更改的。

您正在寻找NSMutableString类,它实现了以下方法:

replaceOccurrencesOfString:withString:options:range:

您可以使用它来替换发送该消息的对象中的字符或子字符串。