【问题标题】:Has iOS 7 changed PNG compatibility/handling?iOS 7 是否改变了 PNG 的兼容性/处理方式?
【发布时间】:2013-11-03 15:33:12
【问题描述】:

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

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

我知道这是一个奇怪的问题,有点像问“福特是否改变了车轮的工作方式”,但 Apple 是否改变了它在 iOS 7 中处理 PNG 的方式? 任何人都可以想到可能的原因对于这个 iOS 7 特有的错误?

【问题讨论】:

    标签: ios objective-c uiwebview ios7 png


    【解决方案1】:

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

    【讨论】:

    • 好领导,谢谢!如果事实证明是这样,我会检查并接受答案。
    【解决方案2】:

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

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

    【讨论】:

    • 你有之前/之后的png吗?我想比较 PNG 元数据,看看我们是否可以解决我们遇到的类似问题。
    猜你喜欢
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 2020-02-27
    • 2020-02-22
    • 1970-01-01
    • 2015-03-05
    相关资源
    最近更新 更多