4

我有一个使用UIWebView.)。ImageIO: PNG not a PNG file

现在,显然 PNG 文件没有损坏,因为它们可以在 iOS 6 上运行,有时甚至可以在 iOS 7 上运行,但有时它们会恢复该错误。我找不到任何确定错误发生时间的常见原因,而且我没有对它们做任何可能导致它的异常:我的代码除了在 UIWebView 中加载页面之外没有触及它们,所以它似乎是 WebView 在内部做的事情。当然,这使得更难确定。

我知道这是一个奇怪的问题,有点像问“福特是否改变了车轮的工作方式”,但苹果是否改变了它在 iOS 7 中处理 PNG 的方式? 谁能想到可能导致此 iOS 7 特定错误的原因?

4

2 回答 2

5

问题不太可能出在 PNG 本身。如果是这样,那么它每次都会失败。更有可能的是您正在破坏数据,可能是由于竞争条件(因为它是间歇性的)。例如,您可能正在主线程以外的地方执行 WebKit 调用。您可能在 iOS 6 上已经摆脱了这种情况,但在 iOS 7 上可能已经发生了足够的变化,导致竞态条件失败。如果您在 之外处理这些 PNG,则UIWebView可能会出现竞争条件。那是我要看的两个主要地方。

于 2013-10-24T18:59:17.260 回答
2

原来问题出在PNG文件本身:有人在Photoshop中打开了某些文件进行编辑,而这些文件在某些​​条件下无法正常工作。我不知道到底是什么让它们无法被应用程序接受,但是当我们重新导出它们时,它们运行良好。奇怪,但解决了。

对任何阅读此问题的人的建议:如果需要,在各种设置和条件下重新导出文件,并查看它们是否开始工作。

于 2013-11-01T00:40:37.220 回答