Проблема сверхвыпуска памяти, когда я анимирую UIView

Я включил NSZombie's, и я получаю следующее сообщение в своей консоли, когда я запускаю свое приложение:

 *** -[UIViewAnimationState release]: message sent to deallocated instance 0xf96d7e0

Вот метод, который выполняет анимацию

-(void)loadAvatar:(STObject*)st
{   
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];    

    avatar.alpha = 0;
    avatar.frame = avatarRectSmall;

    avatar.image = [ImageCache getMemoryCachedImageAtUrl:st.avatar_url];

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:.50];

    avatar.frame = avatarRectNormal;
    [avatar setAlpha:1];
    [UIView commitAnimations];


    [pool release];
    pool = nil;
}

Я не всегда получаю катастрофический отказ, только иногда. Я задаюсь вопросом, что становится выпущенным?

5
задан Sheehan Alam 28 April 2010 в 01:59
поделиться

1 ответ

У вас есть пул автозапуска, который побуждает меня спросить, это отдельный поток? Если ответ положительный, то вы не можете ничего делать с UIView там. UIKit не является потокобезопасным. Вы можете делать и другие вещи, например, вычислять позиции или обновлять изображения, которые вы позже помещаете на экран, но любые действия с пользовательским интерфейсом должны происходить в основном потоке.

Раздел «Графика и рисунок» в Руководстве по программированию приложений iPhone

15
ответ дан 18 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: