Заменить символы в NSString
Я хотел бы стереть объект NSString в моем коде (заменить все символы на 0).
Для этого я попробовал это:
NSString *myString;
for (int i=0; i<[myString length]; i++)
{
myString[i] = 0;
}
Но он не компилируется: "Несовместимые типы в присваивании" в строке myString[i] = 0;
Я понимаю, но я не могу использовать функцию stringByReplacingOccurancesOfString, потому что она создает новый объект, и я хотел бы заменить символы в моем первом объекте.
Любая помощь?
2 ответа
NSString
является неизменным, это означает, что вы не можете изменить его содержимое после его создания. У вас есть NSMutableString для этой цели.
Кроме того, вы не можете получить доступ к символам в NSString
или же NSMutableString
с этим синтаксисом:
myString[i] = 0;
NSString
с и NSMutableString
Это объекты, и вы работаете с объектами, отправляя им сообщения. Например, у вас есть characterAtIndex:
метод, который возвращает символ по указанному индексу, или NSMutableString
"s replaceOccurrencesOfString:withString:options:range:
это заменяет все вхождения данной строки в данном диапазоне другой данной строкой.
По определению, NSString является неизменным классом, поэтому данные внутри него неизменны.
Вы ищете класс NSMutableString, который реализует следующий метод:
replaceOccurrencesOfString:withString:options:range:
Который вы можете использовать для замены символов или подстрок внутри объекта, которому вы отправляете это сообщение.