Имеются некоторые основные проблемы с управлением общей памятью от добавления и удаления контроллера uiview - но только когда я добавляю анимацию к нему с помощью CAtransition. Я настроил простой сценарий ниже ситуации:
У меня есть базовый контроллер представления, который я инициализирую / размещаю под названием IVC, и я добавляю к текущему контроллеру uiController:
В заголовочном файле просто объявлено:
IntroViewController* IVC;
НА СТАРТЕ: общий объем памяти 3 Мбайт показан в утечках
3,6 МБ общей памяти
IVC=[[IntroViewController alloc] initWithNibName:@"Intro" bundle:[NSBundle mainBundle]];
[IVC.view setUserInteractionEnabled:YES];
[self.view addSubview:IVC.view];
тогда я выпускаю:
[[IVC.view layer] removeAllAnimations];
[IVC.view removeFromSuperview];//remove intro animation
[IVC release];
как и ожидалось, общий объем памяти возвращается к 3 МБ
но когда я удаляю код выпуска и добавляю следующее, чтобы произошло затухание, а затем освобождаю объект, показанный здесь:
CATransition *applicationIntroLoadViewIn = [CATransition animation];
[applicationIntroLoadViewIn setDuration:.5];
[applicationIntroLoadViewIn setType:kCATransitionReveal];
[applicationIntroLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[applicationIntroLoadViewIn setValue:@"IntroFadeIn" forKey:@"IntroAnimation"];
[applicationIntroLoadViewIn setDelegate:self];
[[IVC.view layer] addAnimation:applicationIntroLoadViewIn forKey:nil];
и затем:
Я создаю метод для обработки после завершения анимации:
- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)flag{
NSString* value = [animation valueForKey:@"IntroAnimation"];
if ([value isEqualToString:@"IntroFadeIn"]){
//this def gets called NSLog shows up
[[IVC.view layer] removeAllAnimations];
[IVC.view removeFromSuperview];//remove intro animation
[IVC release];
IVC=nil;
}
утечек нет, вид удален, но память все еще остается на 3,6 МБ в утечках? Любая причина, почему это произойдет? Я не выделяю анимацию *, поэтому я чувствую, что ее не нужно очищать, но это говорит о том, что что-то все еще держится за мое представление IVC
Любая помощь высоко ценится.