2012-05-25 35 views
4

UIWebViewDelegate協議參考指出:在ARC中的UIWebViewDelegate手動發佈?

之前釋放您已設置了委託的UIWebView的一個實例,您必須首先設置UIWebView的委託屬性設爲零的UIWebView實例的處理之前。例如,可以在處理UIWebView的dealloc方法中完成此操作。

它仍然是必要的ARC?

+0

我肯定會(做)。似乎有兩個可能的問題。一個是強大的參考週期(又名保留週期)問題,我認爲這不適用於此。第二個是這個對象可能異步調用另一個隊列中的委託方法。也許這不是一個問題,但鑑於文檔的警告,我傾向於遵循確保「無」代表的建議。 – Rob

回答

4

如果委託定義爲弱屬性,nilling委託出去是不必要的,因爲ARC會爲你做這個。但是,如果該類未使用ARC進行編譯,並且代理標記爲「分配」,則必須小心並將其設置爲零。

+0

我檢查了UIWebView的源代碼。即使我爲我的項目啓用了ARC,委託也被定義爲assign(不是弱)。看起來我必須自己處理它。 –

+0

用什麼方法將委託設置爲零? –

+0

@NicHubbard的dealloc是方法 – Stavash