清除代表

时间:2011-09-06 15:29:36

标签: iphone ios delegates

清除UIWebView委托的正确方法是什么?

在我的dealloc功能中,我添加了

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

并且是第一个必要的吗?

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

,该怎么办?

由于

3 个答案:

答案 0 :(得分:0)

如果是上面的代码。不,您可能不需要清除代表。

但是,如果你有ClassA和ClassB,并且你已经将ClassA设置为ClassB的委托,那么你需要注意的是......当ClassA在ClassB仍在使用时被释放。

因此,为了处理这个问题,ClassA将在ClassA的dealloc方法中从ClassB的delegate属性中清除(本身)。

答案 1 :(得分:0)

我认为您只需在发布之前取消所有请求:

[webView stopLoading];

干杯!

答案 2 :(得分:0)

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

以上问题及其他问题的答案非常好:How to safely shut down a loading UIWebView in viewWillDisappear?。它将对UIWebView的生命周期进行很好的概述。

有关致电stopLoading的提示:在致电isLoading之前,您无需检查是否正在使用stopLoading加载任何内容 - 只需直接致电stopLoading即可如果没有加载什么都不做。