美文网首页
load和initialize方法

load和initialize方法

作者: CoderShmily | 来源:发表于2015-09-13 09:46 被阅读69次
# 第一次加载这个类的时候调用,当程序一启动就把类加载进内存 main函数之前就执行
+ (void)load
{
    NSLog(@"");
}

 # 当前类或者它的子类第一次使用的时候调用(但并不是只会调用一次,当有多个子类的时候,每次使用一个新的子类都会调用)
+ (void)initialize
{
    NSLog(@"");
}


initialize方法分析

@interface A : NSObject
@interface B : A
  • 类A第一次初始化会调用(再创建A对象就不会调用)

  • 类A的子类B第一次创建也会调用B的initialize方法,若是B类没有实现此方法,依然会调用A的initialize方法

  • 总结:类第一次初始化会调用initialize方法,自己实现调用自己,自己没实现,调用父类实现的,以此类推

  • 如果只想在A类初始化一些操作,可以参考下面代码

+ (void)initialize {
    // 只在此类第一次使用时调用,子类第一次初始化不调用
    if (self == [Animal class])
    {
        NSLog(@"%s", __func__);
    }
}

相关文章

网友评论

      本文标题:load和initialize方法

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