0

我在 iPad 应用程序中有一个非常奇怪的内存泄漏。

我有一个导航控制器应用程序,通过单击主控制器上的一个按钮,我推送了一个 ViewController,这个 View Controller 有一个 UIWebView。使用 IBOutlet 连接到 NIB 文件。

@interface MyViewController : UIViewController {

     IBOutlet UIWebView *webview; 
}

当用户触摸它时,它会在 Webview 中开始播放 youtube 视频。

现在,当我点击返回按钮时,我会弹出视图控制器。

问题来了,视频没有停止播放,原因是 UIWebView 实例仍然存在,为此我在 dealloc 方法中检查了它的保留计数,它显示为 2,但它应该是 1。我没有保留它在我的代码中。

奇怪的东西来了,只是为了测试我在对象上调用了释放,这一次视频停止播放。

我知道这不是正确的做法,但没有回答为什么会以这种方式发生。

关于我哪里出错的任何评论。

谢谢

4

1 回答 1

0

需要考虑的两点:

  1. MyViewController 是如何分配和释放的?当您推送视图控制器时,它将再次保留。您实际上可以在代码中的那一点释放它。

  2. 在弹出 MyViewController 之前,尝试将 webview 的委托设置为 nil。

于 2011-01-30T01:24:35.107 回答