从iOS视图中移除Web视图崩溃iOS 10上的应用程序
随着最近升级到iOS 10和Titanium SDK 5.5.1.GA,我的应用程序在 试图从父视图中移除web视图时崩溃。 webview正确加载HTML,但尝试返回应用程序失败时。从iOS视图中移除Web视图崩溃iOS 10上的应用程序
代码:
var aItems = view.children; //<- fails on this line if parent view has a webview child
for(var i = aItems.length - 1; i >= 0; i--) {
aItems[ i ].backgroundImage = "";
aItems[ i ].image = "";
view.remove(aItems[ i ]);
aItems[ i ] = null;
}
错误:
error 10:37:52.693612 -0500 NSURLConnection finished with error - code -1001
default 10:37:52.851682 -0500 invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution.
版本:
Operating System
Name = Mac OS X
Version = 10.12
Architecture = 64bit
# CPUs = 8
Memory = 8589934592
Node.js
Node.js Version = 5.11.1
npm Version = 3.8.6
Titanium CLI
CLI Version = 5.0.9
Titanium SDK
SDK Version = 5.5.1.GA
Target Platform = iphone
这不仅不能在iOS,Android的没有。
更新: 如果我没有设置任何HTML到web视图,应用程序工作正常。我正在远程获取html,然后在webview上进行设置。
之前还是可以空儿:
for(var i in view.children) view.children[i] = null;
现在你有两种方式,你可以尝试:
1)使用“removeAllChildren”的方法,而不是做循环并删除?
view.removeAllChildren();
2)尝试归零之后的意见属性设置为空数组的孩子:
view.children = [];
无论哪种方式,我认为这是一个平台的bug,你应该创建一个JIRA Ticket
我会试试看,并告诉你它是否有效。谢谢你的帮助! – deliberateSnafu
我试过你的解决方案,但它没有解决问题。我最终构建了一个测试应用程序,但仍然能够创建问题。我正在为bug提供一张杰拉票。谢谢你的帮助。 – deliberateSnafu
如果您可以在独立应用程序中重现此错误,那很可能是一个错误。应该在Appcelerator Jira中报告哪些内容:https://jira.appcelerator.org/secure/Dashboard.jspa 如果这样做,请在此处注释链接故障单! –
https://jira.appcelerator.org/browse/AC-4560 deliberateSnafu