Утечка памяти приложения iPhone с анимацией UIImage? Проблема тестирования на устройстве

У меня есть анимация, которая отлично работает в симуляторе, но вылетает на устройстве. Я получаю следующую ошибку...

Программа получила сигнал: "0". Отладчик вышел из-за сигнала 10 (SIGBUS)

Небольшое расследование показывает, что UIImages не освобождаются, и у меня есть утечка памяти. Я новичок в этом, так что кто-то может сказать мне, если это вероятная причина? Если бы вы могли также сказать мне, как решить это, то это было бы удивительно.

Изображения размером 480px x 480px и около 25kb каждое. Мой код ниже...

NSArray *rainImages = [NSArray arrayWithObjects:
                           [UIImage imageNamed:@"rain-loop0001.png"],
                           [UIImage imageNamed:@"rain-loop0002.png"],
                           [UIImage imageNamed:@"rain-loop0003.png"],
                           [UIImage imageNamed:@"rain-loop0004.png"],
                           [UIImage imageNamed:@"rain-loop0005.png"],
                           [UIImage imageNamed:@"rain-loop0006.png"],  
                           //more looping images
                           [UIImage imageNamed:@"rain-loop0045.png"],
                           [UIImage imageNamed:@"rain-loop0046.png"],
                           [UIImage imageNamed:@"rain-loop0047.png"],
                           [UIImage imageNamed:@"rain-loop0048.png"],
                           [UIImage imageNamed:@"rain-loop0049.png"],
                           [UIImage imageNamed:@"rain-loop0050.png"],
                           nil];


    rainImage.animationImages = rainImages;
    rainImage.animationDuration = 4.15/2;
    rainImage.animationRepeatCount = 0;
    [rainImage startAnimating];
    [rainImage release];

Спасибо

2 ответа

Я почти уверен, что вы зависаете, потому что [NSArray arrayWithObjects:] возвращает автоматически выпущенный объект, который вы сохраняете в rainImage. Затем внизу вы снова выпускаете rainImage, тем самым перезагружая его.

Корень проблемы в том, что у вас не хватает основной памяти, потому что у вас слишком много распакованных образов в памяти, см. Мой ответ на утечки памяти uiimage-animation-вызвав-app-to-crash-memory-утечки по той причине, что вы не должны быть используя UIImageView.animationImages.

Другие вопросы по тегам