2011-03-23 75 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

相關問題