• loadView、viewDidLoad和viewDidUnload的区别


    一、loadView

    在不使用xib创建视图时,分两种情况。第一、实现文件中不重载改方法,则该方法的默认操作是创建一个UIView给当前VC的view。第二、重建该方法,则必须要在该方法中新建一个UIView给当前VC的view,并且重写该函数时不应该调用super。在该函数中可以加载一些控件,但是不建议再此处添加。

    - (void)loadView
    {
        // If you create your views manually, you MUST override this method and use it to create your views.
        // If you use Interface Builder to create your views, then you must NOT override this method.
        
        UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
        [view setBackgroundColor:[UIColor whiteColor]];
        self.view = view;
        [view release];
        
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 100, 40)];
        label.backgroundColor = [UIColor redColor];
        [self.view addSubview:label];
        [label release];
        
    }

    二、viewDidload

    这个函数不论是使用xib还是loadview,都会被调用。多数情况下是做xib的一些后续初始化工作。

    三、viewDidUnload

    这个函数与viewDidload对立,在程序内存欠缺时,这个函数被controller调用。由于controller通常保存着与view相关的对象或者其他运行时创建的对象的引用,所以你必须使用这个函数来放弃这些对象的所有权以便内存回收。但不要释放那些难以重建的数据。

    总结:

    1、不论是使用xib还是纯代码创建,都可以不重写loadview,使用默认的,直接在viewDidload中加载控件,纯代码只需要在初始化时使用init函数即可。

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

    —->当需要使用view时有回到第一步      如此交替循环

    参考:http://www.dreamingwish.com/dream-2011/correct-online-information-error-loadview-viewdidload-viewdidunload.html

  • 相关阅读:
    Swing编程基础 之二
    数据库有几种
    世界上所有的电脑操作系统
    Linux基础命令-有关于目录的命令
    Oracle Flashback 闪回
    Linux CentOS6.5下安装Oracle ASM
    如何将U盘内文件拷入VMware Linux CentOS6.5虚拟机
    iptables 开启端口
    在Oracle SQLplus下建用户 建表
    Linux CentOS中使用SQL*Plus启动和关闭数据库
  • 原文地址:https://www.cnblogs.com/foxmin/p/2711625.html
Copyright © 2020-2023  润新知