Я получаю странный случай чрезмерного количества операций сохранения для контроллера представления, который загружается при нажатии кнопки.
Это код:
-(IBAction)new
{
if (!viewSpace)
viewSpace = [[ViewSpace alloc] initWithNibName:@"ViewSpace" bundle:nil];
viewSpace.delegate = self;
viewSpace.view.frame = CGRectMake(0, 0, viewSpace.view.frame.size.width, viewSpace.view.frame.size.height);
[self presentModalViewController:viewSpace animated:YES];
NSLog(@"Count Retain: %d",[viewSpace retainCount]);
}
-(void)viewSpaceWasDissmissed:(id)sender
{
[self dismissModalViewControllerAnimated:YES];
[viewSpace release];
NSLog(@"Count Retain: %d",[viewSpace retainCount]);
}
КогдаIBAction New выполняется в первый раз, счет сохранения равен 5, когда только что создан.(Должно быть 1).
Когда объект ViewSpace должен быть выгружен, вызывается функция viewSpaceWasDismissed, чтобы удалить модальное представление и освободить предыдущий объект.
Проблема заключается в том, что никогда не сохраняется счетдостичь 0, и метод dealloc в ViewSpace никогда не вызывается, вызывая утечки памяти.
Мой вопрос: как возможно, что недавно созданный ViewController имеет 5 сохранений?Я убедился, что это никогда не было создано.
Спасибо.