Первый из них статический, а за память отвечает компилятор и среда выполнения.Вы должны использовать этот метод, когда можете.Компилятор имеет хорошую оптимизацию памяти (например, все равные строки будут указывать на один и тот же адрес в памяти).
Второй: вы создали его во время выполнения и отвечаете за память,Это метод, который вы должны использовать, когда строка является динамической.Он скопирует содержимое статической строки в allocatedString
Подводя итог, вы создаете ненужные издержки, используя initWithFormat
, когда строка статическая.Статическая строка будет создана обоими способами, второй способ просто скопирует содержимое в другой NSString
.