Я имею NSString и не удаюсь применить следующее утверждение:
NSString *myString = @"some text";
[myString stringByAppendingFormat:@"some text = %d", 3];
никакой журнал или ошибка, строка просто не становится измененной. Я уже попробовал NSString (как зарегистрировано) и NSMutableString.
любые приветствующиеся подсказки.
Я бы предложил исправить ( документация ):
NSString *myString = @"some text";
myString = [myString stringByAppendingFormat:@" = %d", 3];
Из документации:
Возвращает строку, полученную путем добавления к получателю созданной строки из заданной строки формата и следующих аргументов.
Это работает, вы просто игнорируете возвращаемое значение, которое представляет собой строку с добавленным форматом. (См. документацию .) Вы не можете изменить NSString - чтобы изменить NSMutableString, используйте вместо этого -appendFormat: .
Конечно, в вашем игрушечном примере вы могли бы сократить его до следующего:
NSString *myString = [NSString stringWithFormat:@"some text = %d", 3];
Однако вполне вероятно, что вам нужно добавить строку формата к существующей строке, созданной в другом месте. В этом случае, особенно если вы добавляете несколько частей, хорошо подумать и сбалансировать плюсы и минусы использования изменяемой строки или нескольких неизменяемых, автоматически выпускаемых строк.
Создание строк с помощью @ ""
всегда приводит к неизменяемым строкам. Если вы хотите создать новую NSMutableString, сделайте это следующим образом.
NSMutableString *myString = [NSMutableString stringWithString:@"some text"];
[myString appendFormat:@"some text = %d", 3];