Причина, по которой они говорят, что не стоит беспокоиться, заключается в том, что поле retainCount
часто может вводить в заблуждение.Помимо того, что неизвестно, когда пул автообновления последний раз сбрасывался или сколько раз объект был автоматически освобожден с тех пор, существуют также некоторые сложные внутренние компоненты, и системные компоненты могут временно хранить ссылки способами, которые невозможно предсказать.Поэтому, если вы начнете изучать retainCount
, вы, вероятно, потратите много времени, пытаясь выяснить, что другие части системы делают с различными объектами, что вряд ли поможет вам правильно настроить приложение.
Вы должны спроектировать, как ваше приложение работает так, чтобы использование памяти не было чрезмерным.
Вам следует беспокоиться о том, сколько объектов у вас в памяти и сколько раз вы сохранили их (это число, которое будетбыть меньше, чем retainCount
), и удостовериться, что вы отпускаете их столько раз, сколько сохраняете их.
Многократное обращение к объекту retain по-прежнему приводит к тому, что в памяти остается только одна копия объекта.
Чтобы проверить использование памяти и / или утечки, вы используете детектор утечки инструментов.