• 42.OC中instancetype与id的区别


    区别:

    在ARC(Auto Reference Count)环境下:

    instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型,运行时检查类型

    在MRC(Manual Reference Count)环境下:

    instancetype和id一样,不做具体类型检查

    区别2:

    id可以作为方法的参数,但instancetype不可以

    instancetype只适用于初始化方法和便利构造器的返回值类型

    便利构造器

    举例:

    在Teacer.h里添加定义

    +(id)teacherWithName:(NSString *)name;

    在Teacher.m里添加实现

    +(id)teacherWithName:(NSString *)name{

      

         Teacher *t=[[Teacher alloc]initWithName:name];

          return t;

    }

    ps: “-”和“+”修饰的方法的异同:   “-”方法是实例方法,只有实例化 的对象可以调用

                                                         “+”方法是类方法,无需实例化,直接用类名就可以直接访问

    便利构造器封装了对象的整个过程,进一步简化了对象创建的步骤 

  • 相关阅读:
    Linux下SSH的Log文件路径
    Linux下压缩与解压命令tar
    Linux命令之at
    Linux下nice/renice命令小结
    Linux命令详解nice
    LVM---动态调整磁盘容量
    VT100字体
    Linux命令之WC
    for name in loop Shell
    Bind9用view配主从
  • 原文地址:https://www.cnblogs.com/qiangzheVSruozhe/p/8473442.html
Copyright © 2020-2023  润新知