iOS UIWebView调用JS的释放内存坑

我们项目涉及到UIWebView和JS互相调用的小游戏,小游戏里面是有声音的。

我们的工程是ARC模式,我们在ARC模式中在退出UIWebView的时候进行了以下操作


代码

并且把_gameWebView = nil了   我们测试是消除了,但是返回上层页面,JS的音频还在播放。

为什么已经消除了,还在播放,难道还在内存里面吗?

我们分享到微信里面,发现退出之后不在播放了。

哎呦,内存内存内存,是谁占用了,UIWebView已经消除了啊。为什么。。。

然后注意到了这边博文UIWebView使用中的内存相关问题

原来是JS的问题。

之后又加上了


附图


[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];

[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"];

[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitOfflineWebApplicationCacheEnabled"];

[[NSUserDefaults standardUserDefaults] synchronize];

之后再试还是没有,不是说已经消除了吗。

我们有吧ARC改成MRC,对对象进行自己消除,打印retainCount确实为0了。返回音频不播放了。真个人都OK了。仔细查了资料iOS4之后就出现了这个问题,之后iOS8出现了WKWebView。为了兼容iOS8.0一下还的用WKWebView真是够了。现在iOS9出来了,很多人都出现了多多少少的BUG。好多的库也出现了崩溃现象。所以以后开发最好是能用自己的库就用自己的不会被第三方牵着鼻子走。

顺便祝大家中秋快乐,十一快乐,最主要的是编码愉快。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自 燃烧的大叔 我们项目涉及到UIWebView和JS 互掉的小游戏,小游戏里面是由声音的。 我们的工程是 A...
    LeoCao阅读 375评论 0 0
  • 那些无法抗拒的东西,我们喜欢叫它诱惑。 意思就是,我明明不想这样做的,呐,就是它诱惑我,所以我才做的。 所以意思是...
    思绪的速度阅读 360评论 0 0
  • 最近特别喜欢听一首歌《陪你度过漫长岁月》。 走过了人来人往 不喜欢也得欣赏 我是沉默的存在 不当你的世界 只作你...
    小闹腾阅读 301评论 1 1
  • 本文来自:http://blog.sina.com.cn/s/blog_140faf95b0102vdt4.htm...
    前端摘要阅读 503评论 0 2
  • 哪有什么天生如此,只是我们天天坚持 记住你青春无谓的样子,你未必出类拔萃,但一定与众不同! 人生没有白走的路,每一...
    guoguoguoguoguo阅读 204评论 0 0