Утечка памяти приложения iPhone с анимацией UIImage? Проблема тестирования на устройстве - PullRequest
0 голосов
/ 08 июня 2010

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

Программа получила сигнал: «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 ]

0 голосов
/ 21 июня 2013

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

0 голосов
/ 08 июня 2010

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

...