2013-10-24 105 views
4

我有一個應用程序,使用UIWebView,並且iOS 6上的所有內容都(現在仍然是)完美運行。但是,在iOS 7上,當我嘗試加載某些PNG時,它有時會踢出一個錯誤ImageIO: PNG not a PNG file文件(例如this one)。iOS 7更改PNG兼容性/處理?

現在,顯然PNG文件沒有損壞,因爲他們在iOS 6上工作,他們有時即使在iOS 7上也能工作,但有時他們會反彈那個錯誤。我找不到任何可以確定何時發生錯誤的常見原因,而且我也沒有對它們做任何不尋常的事情來解決它:我的代碼除了在UIWebView中加載頁面外不會觸及它們,所以它似乎是WebView在內部所做的事情。當然,這使得更難以確定。

我知道這是一個奇怪的問題,有點像問「福特改變車輪的工作方式」,但確實讓蘋果改變了它在iOS 7中如何處理PNG?任何人都可以想到可能會導致這個iOS 7特定錯誤的原因嗎?

回答

2

原來問題出在PNG文件本身上:有人在Photoshop中打開某些文件進行編輯,而這些文件在某些​​條件下不工作。我不確切地知道它們是什麼,它們使得它們在應用程序中無法接受,但當我們重新導出它們時,它們完美地工作。奇怪,但解決了。

建議任何人閱讀與類似的問題:重新導出您的文件,在各種設置和條件下,如果需要的話,看看他們是否開始工作。

+0

你有沒有之前/之後的PNG?我想比較PNG元數據,看看我們是否可以解決我們遇到的類似問題。 – kcbanner

5

問題不大可能是PNG本身。如果是,那麼每次都會失敗。更可能的是,你正在破壞數據,可能是由於競爭條件(因爲它是間歇性的)。例如,您可能正在執行WebKit調用,而不是主線程。你可能已經在iOS 6上得到了這些,但是在iOS 7上可能已經改變了,導致競爭條件失敗。如果您在UIWebView之外處理這些PNG,那麼您可能會遇到競爭狀況。那些是我看的兩個主要地方。

+0

良好的領先,謝謝!如果事實證明發生了什麼,我會檢查出來並接受答案。 – Nerrolken