2011-03-23 78 views
2

我创建了一个应用程序,它包含一个带播放按钮的屏幕以播放音频文件。运行应用程序10分钟后出现问题;它抛出在控制台此消息:error = 24当应用程序在ipad中运行10分钟时

的ImageIO:CGImageRead_mapData '开放' 失败 “/用户/ indianic /库/应用程序支持 /iPhone 模拟器/ 4.2 /应用/ A511E515-6FEA-4D0D-A5C5 -95740B14C858/VisualMath.app/pi_play.png” 误差= 24(打开的文件太多)

这些消息后,将应用程序崩溃。任何人都知道为什么会出现这个问题以及如何解决它?

在此先感谢。

+0

所以你想知道是什么导致了一个错误消息,指出“打开文件太多”?猜测,你打开文件的某个地方,而不是关闭它们。但是,如果没有看到一些代码,就不可能知道你正在尝试做什么/可能导致问题的原因。 – 2011-03-23 07:49:51

回答

0

它看起来像你继续加载导致例外的播放按钮的图像。如果是这种情况,请尝试加载一次,并在需要时更改按钮的图标。 如果您使用NSFileHandle在完成后关闭文件,或者使用[UIImage imageNamed:(NSString *)];

+0

嗨萨米, 我不会继续加载按钮的图像。但是我已经在XIB中制作了按钮并从XIB加载。 – 2011-03-23 09:34:17

+0

那么你如何加载pi_play.png?从XIB以及? – Sami 2011-03-23 09:53:29

+3

是的,我已经设置在xib类型的uibutton是自定义和设置图像。 – 2011-03-23 10:12:32

1

我有一个非常类似的问题。对我来说,它必须处理迭代次数(计数)而不是时间运行,而我只是将问题追踪到停止方法的使用。看起来停止方法会在内存中留下一些资源,而这些资源不会释放(我正在猜测可能的恢复)。即使你在停止后调用释放,这是我在audioPlayerDidFinishPlaying中所做的:成功:,如果我事先使用了stop,这是不够的。但只是放开停止,没有别的让我的问题消失。

+0

嗨约翰, 我的问题也是迭代次数而不是时间。正如你所说,我也停止了我的视频播放器,然后发布这样的资源可以在内存中。我的问题是我需要做的任何事情我已经尝试了很多事情,但仍然是同样的问题 请帮我解决这个问题 – 2011-03-24 05:27:37

+0

对不起,我没有其他的见解。 – 2012-12-13 07:39:05

3

因为我在同一个应用程序中使用数据库,所以有一点需要激发两次sql查询。因为我有两次火灾查询,数据库文件没有接近,并且因为该文件在我的应用程序中打开很多时间。并因为该应用程序崩溃与给出此错误。

因此总是检查数据库文件是否越来越接近或没有这种错误。

+0

我在我的项目中有同样的问题,由于这个错误,我得到了“笔尖无法加载”,如果我在iPad中运行,我的视图也改变为iPhone的一个。 – AJPatel 2011-07-22 10:15:57

相关问题