将UIWebView委托属性设置为零
问题描述:
根据documentation,在处理UIWebView实例之前,需要将UIWebView委托属性设置为零。将UIWebView委托属性设置为零
我的问题是:如果UIWebView是用IB的代理指向文件所有者,它是一个viewController。 UIWebView及其超级视图在执行过程中从不处理,委托需要设置为零?
我问这是因为看起来很难获得对UIWebView的引用。
希望有人能够提供一些提示。
(非弧形设置)
答
它始终是很好的做法,按照文档中的建议。在大多数情况下,你所建议的通常是正确的:没有必要将委托设置为零,因为只有在执行结束时对象被销毁的唯一时间。 但是,类似于说“我不需要释放这个堆空间,因为它只会在主返回前立即释放”...
更紧迫的问题是如果应用程序收到低内存警告。如果收到内存警告并且UIWebView
已卸载且代理未设置为零,那么最终可能会在后台发生内存泄漏,具体取决于UIWebView
设置/删除代理时的内存泄漏情况。
如果您将委托设置为无销毁,则当UIWebView检测到它的委托设置为零时,将处理任何需要发生的事件。如果你不这样做,并且实例被不可预知地破坏(比如由于内存不足的警告),那么一旦警告消失,装载将再次发生,无论采取什么程序来设置UIWebView
的代表将是运行两次,没有在两者之间发生的“关闭”程序。鉴于他们坚持认为你的代表没有破坏,我想这表现为内存泄漏或类似的阴险。
只需在您的dealloc方法中将其设置为零即可。现在可能不会解除分配,但是如果/当您更改应用程序并且您不必担心它时,它可能会在将来。 – Rog
你是指viewController中的dealloc方法吗? – Stanley