美文网首页
Objective-C基础之NSObject + (void)l

Objective-C基础之NSObject + (void)l

作者: Harry_Coding | 来源:发表于2018-05-31 00:30 被阅读15次

    Objective-C基础之NSObject + (void)load 、+ (void)Initialize、以及viewController的生命周期


    • Objective-C语言中类都是继承与NSObject的,这个两个类方法正是NSObject方法

    • load方法什么时候被调用

      Invoked whenever a class or category is added to the Objective-C runtime; implement this method to perform class-specific behavior upon loading.

      程序运行。main函数之前调用;class 和 category 加载进Objective-C运行时调用;实现这个方法在类加载时实现特定的行为; 只会调用一次;如果子类实现+load方法会先调用父类的load方法,category会先调用原类的方法。

    • initialize方法什么时候会被调用

    Initializes the class before it receives its first message

    类收到第一条信息的时候调用;initialize方法是会有可能被调用多次的,当子类没有实现,会调用父类的initialize方法,或者子类实现显示的调用【super initialize】;他是线程安全的,当一个线程发送第一条消息,其他线程会被block直到这条线城初始化完成

    • UIViewController的生命周期
      1.类镜像加载到内存->load
      2.给类对象第一次发消息->initialize
      3.初始化viewcontroller->initWithCoder(如果是storyboard加载都会调用这个初始化方法)、initWithNibName(纯代码加载或者XIB加载会调用)
      4.创建ViewController管理的View-> loadView
      View加载完成->ViewDidLoad
      5.视图即将显示->ViewWillAppear
      6.视图已经显示->ViewDidAppear
      7.视图即将进行布局->ViewWillLayoutSubviews
      8.视图布局完成->ViewDidLayoutSubviews
      9.视图即将消失->ViewWillDisappear
      10.视图已经消失->ViewDidDisappear
      11.如果视图收到内存净高->didReceivedMemeryWarning
      11.视图释放->Dealloc

    相关文章

      网友评论

          本文标题:Objective-C基础之NSObject + (void)l

          本文链接:https://www.haomeiwen.com/subject/kejfsftx.html