Я включил 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;
}
Я не всегда получаю катастрофический отказ, только иногда. Я задаюсь вопросом, что становится выпущенным?
У вас есть пул автозапуска, который побуждает меня спросить, это отдельный поток? Если ответ положительный, то вы не можете ничего делать с UIView там. UIKit не является потокобезопасным. Вы можете делать и другие вещи, например, вычислять позиции или обновлять изображения, которые вы позже помещаете на экран, но любые действия с пользовательским интерфейсом должны происходить в основном потоке.
Раздел «Графика и рисунок» в Руководстве по программированию приложений iPhone