Номер 2, вероятно, лучший выбор в большинстве случаев.
Номер 1 имеет шанс потерять освобождение в какой-то момент по линии, по любой причине, но он немедленно освобождает массив , что в средах с нехваткой памяти может быть полезным.
Номер 3 в основном является подробным эквивалентом числа 2, но он пригодится, если вы хотите использовать initWith *, который не имеетсоответствующий массив с *.
Примечание: Если у вас нехватка памяти, например, в дорогом цикле, где вам нужен свежий массив для каждой итерации; не освобождать и выделять новые массивы;просто используйте -removeAllObjects
и перезапустите массив.