заменить символы в NSString - PullRequest
1 голос
/ 26 июля 2011

Я хотел бы стереть объект NSString в моем коде (заменить все символы на 0).

Чтобы сделать это, я попытался это сделать:

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

Но он не компилируется: «Несовместимые типы в присваивании» в строке myString [i] = 0;

Я понимаю, но не могу использовать функцию stringByReplacingOccurancesOfString , поскольку она создает новыйобъект, и я хотел бы заменить символы в моем первом объекте.

Любая помощь?

Ответы [ 2 ]

7 голосов
/ 26 июля 2011

NSString является неизменным, что означает, что вы не можете изменить его содержимое после его создания. Для этой цели у вас есть NSMutableString .

Кроме того, вы не можете получить доступ к символам в NSString или NSMutableString с этим синтаксисом:

myString[i] = 0;

NSString s и NSMutableString s являются объектами, и вы работаете с объектами, отправляя им сообщения. Например, у вас есть метод characterAtIndex:, который возвращает символ с данным индексом, или NSMutableString replaceOccurrencesOfString:withString:options:range:, который заменяет все вхождения данной строки в данном диапазоне другой данной строкой.

2 голосов
/ 26 июля 2011

По определению, NSString является неизменным классом, поэтому данные внутри него неизменяемы.

Вы ищете класс NSMutableString , который реализует следующий метод:

replaceOccurrencesOfString:withString:options:range:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...