Давайте посмотрим на это:
NSMutableArray *array = [[NSMutableArray alloc] init];
[[self cities] addObject: array];
[array release];
Когда вы alloc
объект, его счет сохранения устанавливается на 1:
NSMutableArray *array = [[NSMutableArray alloc] init]; # retain count of array is 1
Когда вы добавляете объект в NSMutableArray
, счетчик retain
этого объекта увеличивается:
[[self cities] addObject: array]; # retain count of array is 2
Когда вы release
array
, его счетчик хранения уменьшается:
[array release]; # retain count is now 1
Как только ваш метод заканчиваетсяу вас все еще есть этот массив, принадлежащий изменяемому массиву [self cities]
.
Поскольку [self cities]
, похоже, не освобождается и не опорожняется, здесь вы можете получить утечку.
В какой-то момент вам нужно очистить или освободить изменяемый массив, освобождая объектысодержащиеся в.Если cities
является свойством класса, возможно, release
это когда класс освобожден.
EDIT
Исправлена ошибка init
- alloc
.