zoukankan      html  css  js  c++  java
  • load vs. initialize

    这篇文章来对比一下NSObject类的两个方法,+load+initialize

    + (void)load;

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

    不管一个类、类别是被动态加载或者静态链接,都会被发送load消息,但是只有新加入的类或者类别实现了这个方法,它才可以响应。

    The order of initialization is as follows:

    1. All initializers in any framework you link to.
    2. All +load methods in your image.
    3. All C++ static initializers and C/C++ __attribute__(constructer) functions in your image.
    4. All initializers in frameworks that link to you.

    注意:

    • 一个类的+load方法在他所有的父类之后调用;
    • 一个类别的+load方法,在类本身的+load之后调用。

    + (void)initialize;

    运行时在每个类或者该类的子类被首次使用时,调用该方法。父类比子类先收到该消息。

    运行时以线程安全给每个类发送initialize消息。这造成initialize会阻塞其他线程。所以,在initialize中只做必须的少量工作。

  • 相关阅读:
    underscore.js,jquery.js源码阅读
    css3动画知识点
    ajax防止重复提交
    jquery data属性的使用
    文字换行
    vue的生命周期
    iphone与安卓的兼容性问题汇总
    python 上下文管理器
    form 校验
    常用的字段和字段参数
  • 原文地址:https://www.cnblogs.com/xjshi/p/7509835.html
Copyright © 2011-2022 走看看