【发布时间】:2014-03-25 14:14:26
【问题描述】:
我有一个不断刷新并显示新视频和图像的网络视图。我怀疑 HTML 页面中的对象没有正确释放,因为我的内存增长缓慢。我在调用 MPAVItem 上的方法时也会崩溃,该方法已经被释放。我没有直接使用 MPAVItem,它是一个由 webview 自动为我的嵌入式视频创建和使用的对象。具体的故障转储是
Thread 0:
0 libobjc.A.dylib 0x3b17c636 objc_msgSend + 22
1 Foundation 0x30ef4aca +[NSConcreteNotification newTempNotificationWithName:object:userInfo:] + 118
2 Foundation 0x30ef4a20 -[NSNotificationCenter postNotificationName:object:userInfo:] + 48
3 Foundation 0x30ef9316 -[NSNotificationCenter postNotificationName:object:] + 26
4 MediaPlayer 0x3183ff04 __53-[MPAVItem _playerItemNewAccessLogEntryNotification:]_block_invoke + 68
我必须让应用程序运行近一个小时,然后它才会崩溃。随着网页每 7 秒刷新一次,它会因进程过多、内存不足或访问 MPAVItem 而崩溃。我已经尝试了我在网上找到的所有内容,例如暂停视频、倒带、将视频 src 设置为“”、清除整个文档、将 webview 设置为 nil 等 javascript 技巧。没有什么可以完全移除这些对象。为了让事情变得更复杂,我将图像和视频放在 iframe 中。主文档中的代码实际上是控制 iframe 内容重新加载的“播放器”。 iframe 每 7 秒更改一次内容,整个页面(播放器)每 20 秒刷新一次。
【问题讨论】:
-
我刚刚尝试按照其他人的建议通过 iOS on webViewDidFinishLoad 将
标签: html ios objective-c uiwebview webkit