• 09-Objective-C特有语法:万能指针id及构造方法


    1.万能指针id

     1.简介:

    • 万能指针能指向任何OC对象,相当于NSObject *
    • id类型的定义
    typedef struct objc_object{
        Class isa;     // 类类型的指针
    }*id;

     2.使用:

      id p = [Person new];  // 注意id 后面不要加  *   号

     3.局限性:

    调用一个不存在的方法,编译器会马上报错


    2.构造方法

     1.含义:

      构造方法:用来初始化对象的方法,是一个对象方法,- 开头

     2.对象创建原理

         new的拆分两部曲:

    • 分配内存(+ alloc):  Person *p1 = [Person alloc];  // 调用类方法alloc分配内存
    • 初始化(- init):Person *p2 = [p1 init];      // 调用init方法进行初始化

      合在一起就是: Person *p2 = [[Person alloc] init];  

     3.init构造方法的重写

      1.作用:为例创建对象出来,就初始化一些成员变量,成员变量就有默认值

      2.init重写规则:

    - (id)init
    {
        // 1.一定要调用super的init方法:初始化父类中声明的一些成员变量和其他属性
        self = [super init]; // 当前对象 self
        
        // 2.如果对象初始化成功,就可以进行接下来的初始化
        if (self != nil)  // 即初始化成功
        { 
            _age = 10;    
        }
        // 3.返回一个已经初始化完毕的对象
        return self;
    }

    3.自定义构造方法

    • 需求和重写init方法差不多
    • 规范:

       1.一定是对象方法,一定以 - 开头

       2.返回值一般是id类型

       3.方法名一般以initWith开头

       4.如果父类有构造方法,一定要调用super的initWith方法 

     

     

  • 相关阅读:
    i++ 与++i
    jquery下的domcument
    jquery
    MVC MVP MVVM
    两个for还是一个for?
    华为云服务器FTP连接
    vue-i18n 使用方法
    在本地运行vue build 文件
    vue项目中使用模拟数据 MOCK
    超简单 超详细 vue项目中使用svg图标 阿里巴巴图标库
  • 原文地址:https://www.cnblogs.com/lszwhb/p/3696582.html
Copyright © 2020-2023  润新知