15

我有一个在 iOS 6 上完美运行的应用程序,但在 iOS 7 上,如果用户采取了非常具体的操作(太复杂而无法进入,但它使用 aUIWebView并且它是一致的),应用程序会崩溃错误:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[WebCoreSharedBufferData getBytes:range:]: range {0, 8} exceeds data length 0'

现在我很乐意自己做一些研究和实验,但我就是找不到WebCoreSharedBufferData。谷歌搜索显示有几个人(比如这里这里以及这里这里)有类似的问题,但他们的问题要么没有得到回答,要么他们正在以某种方式使用他们的应用程序(比如放大地图或使用 3rd 方代码) 我没有这样做。

Xcode 文档从未听说过WebCoreSharedBufferData,并且对我的项目的搜索显示没有对它的引用。谷歌搜索也让我没有开悟,主要是问题和 GitHub 项目以及我不使用的 3rd 方代码。我假设它在 Apple 的UIWebView功能中很深,但无法了解更多关于它的信息,我很难继续。

所以我的问题是:有谁知道我在哪里可以找到信息/教程/描述等WebCoreSharedBufferData?我觉得如果我能更好地理解它,我就能找到解决方案,只是很难在黑暗中调试......

或者,有没有人直接知道WebCoreSharedBufferDataiOS 7 中发生了什么变化可能会产生这样的错误?

编辑: kcbanner(他遇到过类似问题)在下面的评论中提供的一条线索:我们的两个问题都涉及带有画布的页面和onclick带有这些画布的事件。iOS 7 中的画布点击处理可能发生了一些变化?

4

2 回答 2

1

我也刚遇到这个错误。我的设置是 phonegap 3.2 和 createjs 0.7.0,我从来没有遇到过 ios6 的问题,但 ios7 让我感到不适。我的解决方案是使用一个画布元素。我一直在用 png spritesheet 位图数据加载两个画布元素并来回切换,现在我只是通过清除旧数据并添加新数据来重用相同的画布元素。似乎已经解决了这个问题。仍然不明白为什么我不能有两个画布元素。

再多一点……似乎这只发生在我用 png 数据快速重新加载两个画布元素时。我不认为这是损坏的 png 的问题,因为它每次都会在不同的位图上发生,现在我重用相同的画布元素一切正常。

于 2013-12-14T22:19:15.103 回答
0

如果您使用的是 IOS,我不会使用 onClick。IOS 让您点击并在 onClicks 上放置一些时髦的 200 毫秒延迟,这有时会导致“webglue”中断。JavaScript 有一个完整的触摸库,我会使用它,而且 Hammer.js 之类的东西也可以解决你的问题。另外,我会将 phonegap 用于您的应用程序的 webview 组件(即使它不是完整的应用程序),因为它们修复了 IOS 使用其原生 webview 的许多怪癖/错误(即使它只是用于网站浏览)。

于 2013-12-01T03:03:39.320 回答