我想在代码中擦除NSString对象(将每个字符替换为0)。
为此,我尝试了这个:
NSString *myString;
for (int i=0; i<[myString length]; i++)
{
myString[i] = 0;
}
但是它没有编译:“ myString [i] = 0;
中的”赋值中的不兼容类型“我理解,但是我不能使用函数 stringByReplacingOccurancesOfString ,因为它创建了一个新对象,我想替换第一个对象中的字符。
任何帮助?
答案 0 :(得分:7)
NSString
是不可变的,这意味着一旦创建它就无法更改其内容。您已为此目的NSMutableString。
此外,您无法使用以下语法访问NSString
或NSMutableString
中的字符:
myString[i] = 0;
NSString
和NSMutableString
是对象,您可以通过向对象发送消息来处理对象。例如,你有characterAtIndex:
方法返回给定索引处的字符,或者NSMutableString
的{{1}}用另一个给定字符串替换给定范围内给定字符串的所有出现。
答案 1 :(得分:2)
根据定义,NSString是一个不可变类,因此其中的数据是不可更改的。
您正在寻找NSMutableString类,它实现了以下方法:
replaceOccurrencesOfString:withString:options:range:
您可以使用它来替换发送该消息的对象中的字符或子字符串。