2011-09-06 69 views
1

清除UIWebView代理的正确方法是什么?清除代理

在我的dealloc功能,我添加

[myWebView setDelegate:nil]; 
[myWebView release]; 

而且是必要的第一个LIGNE?

编辑:如果我的对象不是UIWebView,但如果NSFetchedResultsController

谢谢

回答

0

将委托设置为零是一回事。其他重要的甚至更重要的是,如果你不再关心结果并且你即将发布一个包含你的UIWebView的视图,那么如何干净地关闭一个加载的UIWebView。

下面是对上述问题和其他问题的非常好的回答:How to safely shut down a loading UIWebView in viewWillDisappear?。它会对UIWebView的生命周期给出一个很好的概述。

上调用stopLoading一个暗示:你没有检查是否有任何正在装载isLoading调用stopLoading之前 - 只需拨打stopLoading直接,如果是正装什么就什么也不做。

0

在上面的代码的情况下。不,你可能不需要清除委托。但是,如果你有ClassA和ClassB,并且你已经把ClassA设置为ClassB的委托,那么你需要小心的是......当ClassA被释放而ClassB仍在使用时。

因此,为了处理该问题,ClassA将从ClassB的dealloc方法中的ClassB的委托属性中清除(本身)。

0

我想你只需要之前,取消所有的请求被释放:

[webView stopLoading]; 

干杯!