Изменить значение изменяемой строки - PullRequest
2 голосов
/ 28 января 2012

Как изменить значение изменяемой строки? Вот что я делаю

NSString *str = @"This is string";

NSMutableString *str = [NSMutableString stringWithFormat:@"%@", str];

str = @"New string" -> wrong incompatible pointer types assigning to NSMutableString from NSString

Ответы [ 3 ]

5 голосов
/ 28 января 2012

Вам нужно использовать NSMutableString только если вы хотите изменить части строки на месте (добавить, вставить и т. Д.), Часто из соображений производительности.

Если вы хотите назначить новые значения длястроковая переменная, у вас все в порядке со старым добрым NSString, так как ваша последняя простая строка присваивает полностью новый строковый объект str:

2 голосов
/ 28 января 2012

Вы можете использовать setString для замены всей строки:

NSString *str = @"This is string";
NSMutableString *mutableStr = [NSMutableString stringWithFormat:@"%@", str];
...
[mutableStr setString:@"a different non mutable string"];

Как указано в другом ответе, для ваших целей может быть достаточно неизменяемого NSString.

0 голосов
/ 28 января 2012

Вот как вы должны инициализировать NSMutableString:

NSMutableString *string = [[NSMutableString alloc]init];

Вы можете использовать любой другой способ, указанный в документах . То, как вы это делаете, вы не создаете ни одного экземпляра класса NSMutableString. Затем, если вы хотите добавить в него некоторую строку:

[string appendString:@"content"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...