iOS錯誤 - too many open files (error = 24)

來源:互聯網
上載者:User

標籤:

碰到這個錯誤是在用 UIImageView 顯示圖片的時候。UIImage 用的是 imageNamed 方法。錯誤原因是開啟了太多的檔案。應該是太多檔案的開啟導致了 UIImage 的 cache 被刪除使得無法擷取緩衝了的圖片。找了很久也沒找到問題,因為 imageNamed 這個方法是會緩衝圖片的,也就是說不管多少 UIImageView 使用這個圖片都不會造成額外的圖片開銷。

後來經過一番測試,恍然大悟。問題居然不來自 UIImage。原以為是程式中載入了太多的圖片造成這個錯誤,但是測試中發現,只要不使用過多不同的圖片是沒有問題的。真正的殺手居然是我程式中的音頻播放器。我的程式中播放器不斷地播放音效,造成了太多檔案的開啟,從來導致了 UIImage 緩衝被回收。

播放器的最佳化很簡單,其實就是不要使用 AVAudioPlayer,而是要使用 AudioServices。

iOS錯誤 - too many open files (error = 24)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.