• iOS ARC环境下dealloc的使用


    众所周知,iOS开发的时候,使用ARC的话,dealloc函数是不需要实现的,写了反而会出错。

    但有些特殊的情况,dealloc函数还是需要的。

    比如,在画面关闭的时候,需要把ViewController的某些资源释放,

    在viewDidDissppear不一定合适,viewDidUnload一般情况下只在memory warning的时候才被调用。

    不用ARC的情况下,我们自然会想到dealloc函数。

    其实ARC环境下,也没有把dealloc函数禁掉,还是可以使用的。只不过不需要调用[supper dealloc]了。

    举个例子,画面上有UIWebView,它的delegate是该画面的ViewController,在WebView载入完成后,需要做某些事情,比如,把indicator停掉之类的。

    如果在WebView载入完成之前关闭画面的话,画面关闭后,ViewController也释放了。但由于WebView正在载入页面,而不会马上被释放,等到页面载入完毕后,回调delegate(ViewController)中的方法,由于此时ViewController已经被释放,所以会出错。(message sent to deallocated instance)

    解决办法是在dealloc中把WebView的delegate释放。

    -(void)dealloc {

        self.webView.delegate = nil;

    }

  • 相关阅读:
    Drupal忘记管理员密码
    Drupal7新装一个主题时页面白屏,如何设置一个默认主题?
    Drupal7强制把主题恢复到默认主题
    Drupal常用的模块
    网页流量分析系统
    S运算符&&和|| 及其优先级
    Linux crontab命令
    C语言实现文件实时更新
    Linux 查看设置系统语言
    Python沙盒环境配置
  • 原文地址:https://www.cnblogs.com/weiboyuan/p/3835321.html
Copyright © 2020-2023  润新知