Ваша проблема здесь:
if (self.myMutableArray == nil) {
self.myMutableArray = [[NSMutableArray alloc] init];
}
Должно быть:
if (myMutableArray == nil) {
self.myMutableArray = [[[NSMutableArray alloc] init] autorelease];
}
Или:
if (myMutableArray == nil) {
myMutableArray = [[NSMutableArray alloc] init];
}
Объяснение:
Свы используете retain
в качестве атрибута-мутатора свойства, объект будет сохранен, когда он будет передан в установщик свойств, поэтому у вас есть утечка, когда вы retain
объект, владельцем которого вы уже владеете.
Решением этой проблемы может быть либо a) Передача объекта autorelease
-d в установщик свойств или b) Присвоение ivar напрямую выделенному объекту.