Примечание: у меня не было возможности поиграть с некоторыми из новейших функций, таких как ARC, так что это может или не может быть устаревшим сейчас.
Да, это может бытьвопрос.По словам Apple, это одна вещь, которую они проверяют.Однако ничто не может гарантировать отклонение (или принятие) группой проверки Apple.Возможно, еще важнее то, что вы хотите, чтобы ваша репутация разработчика приложений была хорошей, вы хотите, чтобы телефоны людей работали для них лучше .
Готово, вывсегда будет освобождать любые объекты, которые вы создали с помощью new или alloc.
Однако для предотвращения, отслеживания и устранения утечек памяти вам необходимо использовать:
1. анализ
2. Утечки инструментов
3. Ваш собственный анализ и рецензирование при необходимости
4. Чистое кодирование, лучшие практики и шаблоны
При использовании инструмента профилирования утечек инструментов, используйте свое приложение и попробуйте найти разные пути выполнения.,Посмотрите, не выглядят ли объекты как протекающие.Я обычно расставляю приоритеты по общему размеру утечки (размер объекта * количество утечек), затем работаю до тех пор, пока утечки не обнаружатся.Нажатие на объект покажет вам где-то место, где объект изначально выделен.
Я обнаружил, что даже инструменты могут явно не улавливать все утечки памяти.
Еще один прием, который может помочьВ этой связи необходимо продумать некоторые «петли», которые вы можете создать в своем приложении, и когда вы вернетесь «домой», ваше приложение должно иметь такой же объем памяти, как в прошлый раз, когда вы были там.Например, начните с домашнего экрана, выполните действие X, затем действие Y, затем вернитесь к домашнему экрану.Допустим, вы ожидаете, что после первого цикла, во 2-й и 3-й раз, когда вы вернетесь к начальному экрану, отпечаток памяти должен быть одинаковым.Затем вы можете попрактиковаться в этом с подключенными приборами и количеством выделений .Это может дать вам некоторую ценную информацию.
Есть некоторые интересные вещи, которые могут произойти с циклами хранения, которые могут произойти, когда у вас есть круговая зависимость между классами, и это легко случиться, когда вы пытаетесь делать определенные вещи.с блоками.
Может возникнуть искушение проигнорировать предупреждение об утечке памяти, когда объект сохраняется в течение всего времени жизни приложения (например, синглтона).Мое мнение состоит в том, чтобы исключить предупреждения и освободить объект где-нибудь, из соображений чистоты.
Вам также будет очень хорошо иметь нулевые предупреждения компилятора и нулевого анализатора при сборке!