清除代理
问题描述:
清除UIWebView代理的正确方法是什么?清除代理
在我的dealloc功能,我添加
[myWebView setDelegate:nil];
[myWebView release];
而且是必要的第一个LIGNE?
编辑:如果我的对象不是UIWebView,但如果NSFetchedResultsController
?
谢谢
答
将委托设置为零是一回事。其他重要的甚至更重要的是,如果你不再关心结果并且你即将发布一个包含你的UIWebView的视图,那么如何干净地关闭一个加载的UIWebView。
下面是对上述问题和其他问题的非常好的回答:How to safely shut down a loading UIWebView in viewWillDisappear?。它会对UIWebView的生命周期给出一个很好的概述。
上调用stopLoading
一个暗示:你没有检查是否有任何正在装载isLoading
调用stopLoading
之前 - 只需拨打stopLoading
直接,如果是正装什么就什么也不做。
答
在上面的代码的情况下。不,你可能不需要清除委托。但是,如果你有ClassA和ClassB,并且你已经把ClassA设置为ClassB的委托,那么你需要小心的是......当ClassA被释放而ClassB仍在使用时。
因此,为了处理该问题,ClassA将从ClassB的dealloc
方法中的ClassB的委托属性中清除(本身)。
答
我想你只需要之前,取消所有的请求被释放:
[webView stopLoading];
干杯!