Утечка памяти связана с этой строкой:
self.liquidProductData = [[NSMutableArray alloc] initWithCapacity:_count];
Скорее всего, свойство помечено как retain
или copy
(обычно первое). Правильный способ его использования:
self.liquidProductData = [NSMutableArray arrayWithCapacity:_count];
Утечка связана с тем, что alloc
возвращает ссылку с владельцем, которая вам позже понадобится release
, но вы не отпустите ее. Теперь вы назначаете его свойству, которое сохраняет экземпляр. «Относительный счет удержания» теперь равен +2. Если вы назначите новое значение этому свойству, старый экземпляр будет освобожден, но это только уменьшит относительное количество сохранений до +1, таким образом, экземпляр никогда не будет освобожден. Это, в свою очередь, также приведет к утечке из вашего словаря и его значений, поскольку они все еще сохраняются в утечке массива.