В моем коде есть следующие строки:
NSString *soundPath = [[NSBundle mainBundle] pathForResource:[[soundString componentsSeparatedByString:@"."]objectAtIndex:0] ofType:@"wav"];
NSURL *soundURL_ = [NSURL fileURLWithPath:soundPath];
av_player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL_ error:nil];
Эти строки находятся в классе calles AnimatableObject
, который я использую примерно от 10 до 30 раз в одном ViewController
.
Все работает отлично в первые несколько раз, когда ViewControllers
инициализируется и загружается.Но после переключения ViewControllers
через некоторое время мое приложение вылетает, потому что следующая строка (которая работала все время до этого) сейчас возвращает ноль.
av_player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL_ error:nil];
Я проверил, равны ли soundPath или soundURL_ нулю.Но они в порядке.Точно такое же значение, как и во все времена, когда оно работало.
Так что теперь я спрашиваю себя, как это может случиться, что оно работает много раз, а потом возвращает ноль?В том же приложении, не закрывая и не запуская его снова.И все, что я делаю, это переключение между viewControllers.Сначала я подумал, что это проблема с памятью, но я не получаю никаких предупреждений о памяти.
Я действительно понятия не имею, почему это происходит.
Любая помощь будет принята с благодарностью.Спасибо заранее, Маверик.
-------- Редактировать --------
Теперь я обнаружил, что получаю следующую ошибку:
ImageIO: CGImageRead_mapData 'open' failed '/var/mobile/Applications/F3186E1A-BBC2-47A6-8EF6-90F73C9BD566/huckla_zoo.app/Weiter.png'
error = 24 (Too many open files)
, поэтому я понимаю, что не могу открыть звуковой файл, когда получаю эту ошибку.Единственное, что мне сейчас интересно: как я могу закрыть дескрипторы файлов?Я не загружаю изображения через [UIImage imageNamed:]
, но с
[UIImage imageWithContentsOfFile:filename];
Я также реализовал MutableDictionary как кэш изображений, который очищается при возникновении проблем с памятью.Есть ли другой вариант для меня, чтобы закрыть мои файловые дескрипторы?