清除(或防止)在UIWebView中构建的JavaScriptCore对象?

清除(或防止)在UIWebView中构建的JavaScriptCore对象?,javascript,ios,memory-management,uiwebview,javascriptcore,Javascript,Ios,Memory Management,Uiwebview,Javascriptcore,我有一个UIWebView,它占用了太多的内存。所讨论的行为涉及到一个HTML/JavaScript页面,在该页面中,您可以通过点击某些区域来重新着色,根据PNG文件创建新的颜色层,但每次用户触摸该字段(无论是添加颜色还是为现有区域重新着色)时,内存都会增加。每一次触摸都会吞噬记忆,而记忆永远不会消失。这个过程无限期地持续下去,最好的结果是内存丢失,最坏的结果是应用程序崩溃 在使用了Activity Monitor和Instruments之后,我将其缩小到了VM:Webkit malloc类别中

我有一个
UIWebView
,它占用了太多的内存。所讨论的行为涉及到一个HTML/JavaScript页面,在该页面中,您可以通过点击某些区域来重新着色,根据PNG文件创建新的颜色层,但每次用户触摸该字段(无论是添加颜色还是为现有区域重新着色)时,内存都会增加。每一次触摸都会吞噬记忆,而记忆永远不会消失。这个过程无限期地持续下去,最好的结果是内存丢失,最坏的结果是应用程序崩溃

在使用了Activity Monitor和Instruments之后,我将其缩小到了
VM:Webkit malloc
类别中的对象的组合,该类别来自
JavaScriptCore库
。这很有意义:页面的功能是JavaScript,每个PNG层大约4KB,与正在构建的对象大小相同

所以现在我的问题变成了,我该怎么办?

我是
UIWebView
的新手,所以我想知道是否有人能告诉我一些选择?有没有办法手动清除所有这些不必要的对象(我尝试了
[[NSURLCache sharedullcache]removeAllCachedResponses]
但没有任何效果),或者从一开始就阻止它们形成


也许最重要的是:这可能会成为应用程序中的iOS解决方案,还是页面上的JavaScript解决方案?

git在添加新颜色时去掉旧颜色。谢谢,伙计,这真的很有帮助。我使用的代码不是我写的,也不懂JavaScript,所以我想知道如何使用。摆脱这些层是JavaScript代码的责任,还是iOS需要摆脱对象,因为UIWebView抓住了它们?这与iOS无关,问题开始于该级别之前。我不能告诉你如何在没有看到一点代码的情况下修复js问题。通常,img.parentNode.removeChild(img)会删除一个图像,如果这是实现效果的方式的话。您还可以将动态元素设置为null、重置画布标记等。但是清理混乱取决于您如何创建混乱。啊。嗯,我希望自己能想出一个解决办法,但我想我只需要把它转发给JS的人。谢谢你的洞察力。这似乎对你正在做的事情来说太过分了,似乎你可以在UIKit中完成它。但我想你需要UIWebView是有原因的。