zoukankan      html  css  js  c++  java
  • viewDidLoad 和 didReceiveMemoryWarning

    在我们创建一个新的.h 和 .m文件时,我们会看到.h:

    @implementation TestViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }

    我们来看一下注释中的意思:

    Do any additional setup after loading the view.     Dispose of any resources that can be recreated.

    做任何额外的设置后加载视图。                                                    处理任何可以被重新创建的资源。

    API文档中如是解释

    viewDidLoad:调用此方法后,视图控制器已加载视图层次到内存中。调用此方法无论从nib文件或加载视图层次loadView方法中以编程方式创建。你通常覆盖这个方法执行额外的初始化视图从nib文件被加载。

    didReceiveMemoryWarning:发送给视图控制器当应用程序接收到一个内存警告。应用程序不会直接调用这个方法。相反,当系统调用此方法确定可用内存的数量很低。你可以重写此方法释放任何额外的内存使用的视图控制器。如果你这样做了,您的实现的方法必须调用实现。

    (loadView/nib文件)来加载view到内存 ——>viewDidLoad函数进一步初始化这些view ——>内存不足时,调用viewDidUnload函数释放views

    —->当需要使用view时有回到第一步

    iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。

    当收到内存警告时,如果viewcontroller未显示(在后台),会执行didReceiveMemoryWarning -> viewDidUnLoad;

    如果viewcontroller当前正在显示(在前台),则只执行didReceiveMemoryWarning。

    当重新显示该viewController时,执行过viewDidUnLoad的viewcontroller(即原来在后台)会重新调用loadview -> viewDidLoad。

  • 相关阅读:
    IDL变量和数组使用
    IDL程序部署
    silverlight连接数据库的四种方法
    ENVI 5.0安装教程
    ArcGIS Server发布地图时提示打包失败解决方法
    ArcGIS Server服务未发布成功,怎么删除?
    Win8磁盘100% Win8磁盘占用100%解决办法终结版(3)
    攻防世界 reverse 进阶 -gametime
    攻防世界 reverse 进阶 16-zorropub
    攻防世界 reverse 进阶 15-Reversing-x64Elf-100
  • 原文地址:https://www.cnblogs.com/penger/p/4138309.html
Copyright © 2011-2022 走看看