ошибка = 24, когда приложение работает в течение 10 минут в ipad - PullRequest
2 голосов
/ 23 марта 2011

Я создал приложение, которое состоит из экрана с кнопкой воспроизведения для воспроизведения аудиофайла. Проблема возникает после запуска приложения в течение 10 минут; выдает это сообщение в консоли:

ImageIO: CGImageRead_mapData 'open' не удалось «/ Users / IndiaNIC / Library / Application Поддержка / iPhone Simulator / 4,2 / Применения / A511E515-6FEA-4D0D-A5C5-95740B14C858 / VisualMath.app / pi_play.png» ошибка = 24 (слишком много открытых файлов)

После этого сообщения происходит сбой приложения. Кто-нибудь знает, почему возникает эта проблема и как ее исправить?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 05 апреля 2011

Поскольку у меня есть работа с базой данных в одном приложении, есть момент, когда мне нужно запустить SQL-запрос дважды.из-за того, что у меня есть запрос на запуск дважды, файл базы данных не подходит и из-за этого файл много раз открывается в моем приложении.и из-за этого происходит сбой приложения с выдачей этой ошибки.

, поэтому всегда проверяйте, подходит ли файл базы данных близко или нет для такого рода ошибки.

1 голос
/ 24 марта 2011

У меня была очень похожая проблема. Для меня это было связано с количеством итераций (счет), а не с временем, и я просто отследил проблему до использования метода stop. Похоже, что метод stop оставляет в памяти некоторые ресурсы, которых нет у релиза (я предполагаю возможное резюме). И даже если вы вызываете release после остановки, что я и делал в audioPlayerDidFinishPlaying: успешно: этого было недостаточно, если бы я использовал stop заранее. Но замена стопа просто выпуском, и больше ничего не помогло мне уйти.

0 голосов
/ 23 марта 2011

Похоже, вы продолжаете загружать изображения для кнопки воспроизведения, которая вызывает исключение.Если это так, попробуйте загрузить их один раз и при необходимости изменить значок кнопки.Если вы используете NSFileHandle, закройте файл, когда закончите, или используйте [UIImage imageNamed: (NSString *)];

...