我有一个在iOS 6上完美运行的应用程序,但是在iOS 7上,如果用户采取了非常具体的操作(太复杂而无法进入,但它使用了UIWebView
并且它是一致),应用程序崩溃错误:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[WebCoreSharedBufferData getBytes:range:]: range {0, 8} exceeds data length 0'
现在我非常乐意自己做一些研究和实验,但我找不到WebCoreSharedBufferData
。谷歌搜索显示有几个人(如here和here以及here和here)有类似问题,但他们的问题要么没有得到回答,要么他们是使用他们的应用程序(如放大地图或使用第三方代码),我不会这样做。
Xcode文档从未听说过WebCoreSharedBufferData
,对我的项目的搜索显示没有引用它。谷歌的搜索也让我没有开心,大多数只是问题和GitHub项目与我没有使用的第三方代码。我认为它在Apple的UIWebView
功能中有一些深刻的东西,但是我无法了解它,我很难继续进行。
所以我的问题是:有谁知道我在哪里可以找到WebCoreSharedBufferData
的信息/教程/描述等?我觉得如果我理解得更好,我就能找到解决方案,在黑暗中调试很难...
或者,是否有人直接知道iOS 7中WebCoreSharedBufferData
发生了哪些更改可能会产生这样的错误?
编辑:在下面的评论中,kcbanner(经历过类似问题)提供了一条线索:我们的两个问题都涉及带有画布的页面和带有这些画布的onclick
事件。 iOS 7中的画布点击处理可能会发生一些变化吗?
答案 0 :(得分:1)
我刚刚遇到这个错误。我的设置是phonegap 3.2和createjs 0.7.0我从来没有遇到过ios6的问题,但是ios7让我很适合。我的解决方案是使用一个canvas元素。我一直在使用png spritesheet位图数据加载两个canvas元素并来回切换,现在我只是通过清除旧数据并添加新数据来重用相同的canvas元素。似乎已经解决了这个问题。仍然不明白为什么我不能有两个画布元素。
再多一点......似乎这只发生在我用png数据快速重新加载两个canvas元素时。我不认为这是一个损坏的pngs的问题,因为它会在每次不同的位图上发生,现在我重用相同的canvas元素一切正常。
答案 1 :(得分:0)
如果您使用IOS我不会使用onClick。 IOS接受你的点击并在onClicks上放置一些时髦的200毫秒延迟,这有时会破坏“webglue”。 JavaScript有一个我会使用的完整触摸库,而且像Hammer.js这样的东西可以解决你的问题。此外,我会使用phonegap作为你的应用程序的webview组件(即使它不是完整的应用程序)因为他们修复了IOS与他们的原生webview有很多怪癖/错误(即使它只是用于网站浏览)。