zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [hdu1402]A * B Problem Plus(NTT)
    拦截导弹问题(Noip1999)
    删数问题(Noip1994)
    1217:棋盘问题
    随笔功能测试
    教师派8
    教师派7
    教师派6
    教师派5
    教室派4
  • 原文地址:https://www.cnblogs.com/foxmin/p/2711625.html
Copyright © 2011-2022 走看看