Инструменты «Утечки» показывают вам, откуда возник объект, а не где он «протек». Так что где-то в вашем коде у вас будет что-то вроде этого:
MyClass *obj = [otherObj copy]; // or copyWithZone:
Но вы не выпускаете или не выпускаете автоматически obj
и, следовательно, создаете утечку.
В Objective-C соглашение гласит, что метод должен возвращать объект с автоматическим освобождением, за исключением для методов, начинающихся с alloc
, new
, copy
или mutableCopy
. Этот метод должен возвращать оставленный объект, а получатель является владельцем и, таким образом, отвечает за их освобождение.
См. Политика управления памятью в руководстве по управлению памятью Apple.