iOS 7是否改变了PNG兼容性/处理?

我有一个使用UIWebView的应用程序,一切都在(现在仍然)在iOS 6上完美运行。但是在iOS 7上,当我尝试加载时,它有时会导致错误ImageIO: PNG not a PNG file某些PNG文件(例如此文件)。

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

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

这个问题不太可能是巴布亚新几内亚本身。 如果是,那么每次都会失败。 更有可能的是,您正在破坏数据,可能是由于竞争条件(因为它是间歇性的)。 例如,您可能正在执行除主线程之外的其他位置的WebKit调用。 你可能已经在iOS 6上得到了它,但在iOS 7上可能已经改变,导致竞争条件失败。 如果您在UIWebView之外处理这些PNG,那么您可能会遇到竞争条件。 那是我看的两个主要地方。

用PNG文件本身解决了问题:有人在Photoshop中打开某些文件进行编辑,这些文件在某些​​条件下无法正常工作。 我不确切地知道它们在引擎盖下是什么让它们对应用程序不可接受,但是当我们重新导出它们时,它们完美地工作。 奇怪,但解决了。

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