Заменить символы в 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:

Который вы можете использовать для замены символов или подстрок внутри объекта, которому вы отправляете это сообщение.

Другие вопросы по тегам