Я работаю над анимацией небольших подсмотров во всем моем пользовательском интерфейсе, используя переход с переворотом. Чтобы заставить Flip-переход работать правильно, я создаю временный UIView, чтобы предоставить контекст, запустите переход, а затем вам нужно будет очистить его потом. Но мне трудно понять, как освободить объект без сбоев приложения. Вот кодовый блок:Как избежать утечки с помощью этой последовательности анимации на основе блоков?
UIView *tempContainer = [UIView alloc];
tempContainer = [self.view viewWithTag:700];
[UIView transitionWithView:tempContainer
duration:2
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^{
[[[tempContainer subviews] objectAtIndex:0] removeFromSuperview];
[tempContainer addSubview:newImageView];
[newImageView release];
}
completion:^(BOOL finished){
[tempContainer release]; //Crashes app
}];
Я использую блочные методы анимации для iOS4. Проблема заключается в том, что мой tempContainer определенно протекает, но если я выпущу или автоматически зарегистрирую его в блоке завершения, мое приложение выйдет из строя, и я сделаю это после сообщения [UIView transition ...], он сработает. Каков наилучший способ реорганизовать это, чтобы я не пропустил свою память? (У меня есть 30 из этих маленьких вещей, чтобы сделать.)
aha, gotcah. Я изменил его на UIView * tempController = [self.view viewWithTag: 700]; и теперь я не вижу утечек и не хочу выпускать tempController, поскольку это просто указатель на другое представление, принадлежащее чему-то другому. благодаря! – Jeof