Я создаю игру, которая извлекает изображения случайным образом. Проведя некоторое тестирование, я понял, что если одно и то же изображение вызывается дважды, оно падает. Я узнал об этом, пройдя первую игру, вернувшись в главное меню игры и выбрав игру снова. В итоге я получил изображение, которое уже отображалось в моей предыдущей игре, а через секунду мое приложение вылетело из строя. Я провел некоторое тестирование и сделал так, чтобы одно и то же изображение появлялось дважды во время моей первой игры, и оно вылетало через секунду после того, как изображение отображалось во второй раз.
Вот пример кода. «idNum» и «timer» объявлены в файле .h, поэтому они являются глобальными. Как вы можете видеть, у меня есть NSTimer, который запускается каждую секунду, чтобы рандомизировать новое изображение для извлечения. Работает, пока изображение не попытается показать во второй раз. Скажем, я получаю случайный порядок 1,3,2,5,3. Он рухнет на второй 3.
Вы не можете вызвать изображение дважды? Я могу только думать, что это проблема с кэшированием, я не знаю, как освободить кеш изображения. Я получаю сообщение об ошибке objc_msgSend. Извините, не очень хорошо разбираюсь в отладке сбоев.
//idNum = the randomly generated integer
//pictures are called by numbers ex(1.jpg, 5.jpg)
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeCounter) userInfo:nil repeats:YES];
-(void)timeCounter {
time = time + 1;
idNum = (arc4random() % 5);
NSString * imgIDnum = [[NSString alloc] initWithFormat:@"%d", idNum];
imgMain = [NSString stringWithFormat:@"%@%@", imgIDnum, @".jpg"];
[imgIDnum release];
UIImage * daImg = [UIImage imageNamed:imgMain];
[imgView setImage:daImg];
}