+load和+initialize区别

//当类被加载到内存会调用(在程序启动时加载所有类的load方法,然后调用main方法)
+ (void)load {
    NSLog(@"%s",__func__);
}

//当前类或者它子类第一次使用时调用(加载子类时也会调用父类的initialize方法)
//在类方法当中没有办法访问当前类的成员属性.
+ (void)initialize {
    NSLog(@"%s",__func__);
    
    //获取全局的(整个应用程序)导航条
    //凡是使用到UINavigationBar的地方全部设置以下属性 (背景,颜色)
    //UINavigationBar *bar = [UINavigationBar appearance];
    
    
    //获取指定类下的导航条
    UINavigationBar *bar = [UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[
                                                                                          [self class]
                                                                                          ]
                                                                            ];
    [bar setBackgroundImage:[UIImage imageNamed:@"navBg"] forBarMetrics:UIBarMetricsDefault];
    
    NSDictionary *dict= @{
                          
                          NSForegroundColorAttributeName : [UIColor whiteColor],
                          NSFontAttributeName : [UIFont boldSystemFontOfSize:20]
                          
                          };
    
    [bar setTitleTextAttributes:dict];
}

你可能感兴趣的:(+load和+initialize区别)