Следующий код определенно пропускает (при условии, что модель памяти копирует или сохраняет в свойстве tableContent):
self.tableContent = [[NSMutableArray alloc] init];
Установщик tableContent освободит старое значение и сохранит / скопирует / назначит новое значение,Рассмотрим утверждение типа:
self.tableContent = [NSMutableArray array];
Это совершенно верно, потому что [массив NSMutableArray] является автоматически выпущенным объектом.Последующее использование self.tableContent работает только после этого, потому что установщик tableContent увеличивает счетчик сохранения, предотвращая освобождение tableContent.
Ваш код (как бы странно это ни выглядело) должен выглядеть следующим образом:
self.tableContent = [[NSMutableArray alloc] init];
[self.tableContent release];
ИЛИ - требует использования автоматически выпущенного объекта, которого некоторые разработчики хотели бы избежать, где это возможно
self.tableContent = [[[NSMutableArray alloc] init] autorelease];
ИЛИ - использует ненужную временную переменную для пояснения управления памятью
NSMutableArray * tempArr = [NSMutableArray alloc];
self.tableContent = tempArr;
[tempArr release];