我有一个iPad应用程序(
IOS 4.3和5.0),每次用户向前或向后翻页时都会创建一个至少有2个子视图的UIView. 2个子视图是UIWebView对象.
在每次相关的滑动中,旧的UIWebViews被删除并正确释放(removeFromSuperview然后stopLoading并将委托设置为nil)并且取消分配父UIView.我可以确认父UIView和2个子UIWebViews都完全没了.
我可以看到webview上的保留计数,因为它们被删除了,我很确定它们每次都被删除了.
然而,我的内存分配在每次刷卡时继续增加~200-350k.仪器没有泄漏,但我可以看到内存使用量缓慢上升.
在iPad 1上,应用程序最终(在适度使用的6-10分钟内)收到多个内存警告并终止.生成LowMemory崩溃日志等.
我们使用stringByEvaluatingJavaScriptFromString和loadRequest来填充Web视图.即使没有任何内容被注入或加载到webViews中,内存使用也会增加.
是否有人在UIWebViews中遇到过这种行为?有没有人成功处理过这个问题?
虽然,评论&答案将不胜感激.
解决方法
尝试使用Instruments但使用“Allocations”模板并观看UIWebView的“#Living”列.我通常这样使用它:
>配置文件应用程序与分配模板>通过浏览所有标签,滚动等等来“警告”应用程序.>按“Mark Heap”,这将创建一个“Baseline”快照>做你认为导致物体留在身边的东西>再次按“Mark Heap”,这将创建一个“Heapshop#”快照>检查“Heapshop#”中的对象,它将显示自上次快照以来创建和活动的对象的大小和数量.>转到4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。