Избавьтесь от вызова mutableCopy
, он вам не нужен, поскольку вы уже alloc/init
-ing NSMutableArray
:
nameArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"names"]];
mutableCopy
является виновником здесь, потому что он увеличивает счетчик сохранений получателя (который уже равен 1), поэтому, когда вы вызываете release
в вашем методе -dealloc
, счетчик сохранений уменьшается до 1, а не 0.
Вам не нужно вызывать mutableCopy
, потому что вы передаете массив в инициализатор NSMutableArray
, который по сути сделает ваш новый массив изменчивым.