В вашем примере вам технически необходимо выпустить его дважды - один раз в dealloc
и один раз сразу после установки свойства:
NSMutableArray *a = [[NSMutableArray alloc] init];
self.myArray = a;
[a release];
Причина этого заключается в том, что вы специально выделяете память в viewDidLoad
, а затем также увеличиваете счет сохранения при установке свойства.
Чтобы избежать этого, используйте один из статических NSMutableArray
конструкторов или используйте autorelease
, т.е.
self.myArray = [[[NSMutableArray alloc] init] autorelease];
Кроме того, можно вообще обойти свойство:
myArray = [[NSMutableArray alloc] init];
Это позволило бы избежать дополнительного сохранения, генерируемого свойством (фактически вы могли бы избавиться от оператора свойства, если бы он использовался только локально).