Невозможно преобразовать неизменяемую строку в изменяемую, просто назначив ее переменной типа NSMutableString *
. То, что вы делаете, по сути:
NSString *immutableStr = @"Mayonnaise";
NSMutableString *mutableStr = immutableStr;
Обе переменные в этом случае указывают на один и тот же постоянный строковый объект (указатели будут сравниваться одинаково). Вы также получите предупреждение, потому что вы пытаетесь установить переменную типа NSMutableString *
с несовместимым значением типа NSString *
. Это несовместимо, поскольку NSMutableString *
предоставляет методы и поведение, которых нет у NSString *
, поэтому при попытке использовать поведение NSMutableString
вы получите ошибки времени выполнения, поскольку фактический объект, на который указывает переменная, не является NSMutableString
.