zoukankan      html  css  js  c++  java
  • initialize和init以及load方法的区别与使用以及什么时候调用

    initialize不是init
    initialize在这个类第一次被调用的时候比如[[class alloc]init]会调用一次initialize方法,不管创建多少次这个类,都只会调用一次这个方法,我们用它来初始化静态变量,而init方法是只要这个类被调用,就会调用这个init方法,这个类被调用几次,这个init方法就会被调用几次,当有一个类继承这个类,是这个类的子类的时候,当子类被调用的时候比如子类被[[class alloc]init]的时候,父类的initialize和init方法都会被调用一次,
    init继承于NSObject这个根类,所有的子类可以不用重写这个实例方法函数,当然也可以在自己的类里重写init实例方法。
    1 - (id) init
    2 {
    3 if ( self = [super init] )
    4 {
    5 // Class-specific initializations
    6 }
    7 return self;
    8 }
    首先得调用父类的init函数方法,然后在if的语句块里写一些自己特色的初始化操作(第5行)。
    可以在你实例化的时候提供更多参数以便实现对对象的快速赋值。重写init可以让你创建的对象出来就是成品。而不重写的话,还需要你对该对象的属性进行赋值。
    • load 方法会在加载类的时候就被调用,也就是 ios 应用启动的时候,就会加载所有的类,就会调用每个类的 + load 方法。
    • 在没有对类做任何操作的情况下,+load 方法会被默认执行,并且是在 main 函数之前执行的。程序启动之前会调用
  • 相关阅读:
    多线程05.thread不知道的知识
    多线程04.策略模式
    多线程03.实现Runnable接口
    多线程02.继承Thread类
    多线程01.newThread的方式创建线程
    静态代理与动态代理
    从零开始学Kotlin第七课
    项目需求变更维护难.....
    加密算法入门
    将重复的数据合并成一行-反射
  • 原文地址:https://www.cnblogs.com/ithongjie/p/5779291.html
Copyright © 2011-2022 走看看