Все они создают объект строки с автоматическим освобождением, верно?
Нет, первый просто назначает указатель, возвращаемый string.map
на list2
. Второй и третий теоретически создают новые NSStrings
, которые вам не принадлежат, и присваивают им list2
. Однако, если string.map
возвращает неизменяемую строку, третья , вероятно, даст вам тот же указатель (возможно, сохраненный и автоматически освобожденный).
Во всех случаях вам не принадлежит (новая) строка. Это на самом деле все, что вам нужно знать. Они могут быть автоматически выпущены, но это не относится к их использованию.