zoukankan      html  css  js  c++  java
  • ios initialize和init等方法

    在程序运行过程中,创建多个类对象,只会调用一次initialize  [ɪˈnɪʃəˌlaɪz] 。而创建几个类对象就会调用几次init;

    创建一个类aa,分别重写 initialize和init方法

    #import "aa.h"
    
    @implementation aa
    
    + (void)initialize{
        NSLog(@"%s",__func__);
        
    }
    
    - (instancetype)init{
        self = [super init];
        if (self) {
        NSLog(@"%s",__func__);
        }
        return self;
    }
    @end

    在viewcontrller里创建两个aa类的对象

    #import "ViewController.h"
    #import "aa.h"
    
    @interface ViewController ()
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        aa *a1 = [[aa alloc]init];
        aa *a2 = [[aa alloc]init];
    }
    @end

    打印结果是:

          

    结论:在程序运行过程中,创建多个类对象,只会调用一次initialize。而创建几个类对象就会调用几次init;

    创建一个类bb 继承自aa类

    #import "aa.h"
    
    @interface bb : aa
    
    @end

    在ViewController里创建两个bb类对象

    #import "ViewController.h"
    #import "bb.  
    @interface ViewController ()
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        bb *b1 = [[bb alloc]init];
        bb *b2 = [[bb alloc]init];
    }
    @end

    打印结果:

        

    结论:如果是子类的话,创建几次实例,initialize和init就会被调用几次

  • 相关阅读:
    2020多校补题集
    2020牛客多校第10场C Decrement on the Tree树上路径删除
    主席树模板(查询区间第K大的元素)
    第一次小赛
    计算几何小知识整理
    咸鱼暂时退圈
    mysql 格式化时间
    mysql 中国省份城市数据库表
    CF786B Legacy (线段树优化建图模板)
    树上两点期望距离
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/5591686.html
Copyright © 2011-2022 走看看