Это не так уж сложно. Вот несколько практических правил, которые будут идти долго.
- Отпустить все свойства в
dealloc (если они не установлены на «назначить»).
- Если вы «выделяете» «новый» или
«Копировать» в вашей инициализации, вы
наверное надо "отпустить" в
dealloc.
- Если вы «выделяете» «новый» или
«Копировать» в начале метода,
вам, вероятно, нужно «отпустить» на
конец метода.
- Если вы "выделяете"
«новый» или «скопировать» что-то, чтобы положить в
массив, словарь или словарь
вперед и отпустите ...
Коллекция сохранит его без каких-либо
помощь от тебя. (Я не большой поклонник
авто-релиз, но это довольно
достойная ситуация для его использования. Создайте
объект автоматически освобожден, затем добавьте его
в коллекцию. Готово.)
Это действительно грубые эмпирические правила, и я уверен, что каждый может придумать исключения из этих правил, но они помогут вам правильно распределить и освободить память.
В остальном время часто запускайте код с помощью инструмента Leaks. Исправьте проблемы, КАК ВЫ НАЙДЕТЕ ИХ. Сейчас исправить это гораздо проще, чем за месяц, когда вы не помните, почему написали код именно так.
И, наконец ... это редко, но код Apple иногда протекает. Инструмент утечки должен точно сказать, что происходит утечка. Если это не похоже на то, что вы делаете, ВОЗМОЖНО, что это не так. В качестве конкретного примера: Core Data для iPhone теряет небольшие объемы ОЗУ при (я думаю) создании нового ManagedObjectContext. Может быть, когда ты делаешь уловку, я не могу вспомнить сразу же на макушке.