美文网首页
id 与 instancetype 区别

id 与 instancetype 区别

作者: Felix的笔头 | 来源:发表于2018-08-15 11:24 被阅读0次

id 与 instancetype 区别 :

1.id 可以当返回值类型并且可以声明对象

2.instancetype 只可以当返回值类型

3.instancetype 返回和方法所在类相同类型的对象,id返回未知类型的对象(instancetype 会对返回值类型做一个检查,检查你这个返回值是不是当前类类型)

4.自定义初始化方法,返回值类型如果写成id,编译器会自动转换成instancetype

在ARC(Auto Reference Count)环境下:

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

在MRC(Manual Reference Count)环境下:

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

区别2:

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

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

相关文章

  • 万能指针 id 和 NSObject

    id 与 instancetype的区别

  • id 与 instancetype 区别

    id 与 instancetype 区别 : 1.id 可以当返回值类型并且可以声明对象 2.instancety...

  • instancetype与id区别

    instancetype最重要的一点是有类型推断,编译器能正确的推断出返回实例的实际类型。 参考文章:为什么你需要...

  • 知识汇总

    OC中instancetype与id的区别 区别1: 在ARC(Auto Reference Count)环境下:...

  • id<NSObject>

    mark: id、NSObject *、id、instancetype的区别id ,NSObj...

  • id 与instancetype的区别

    instancetype的作用,就是使那些非关联返回类型的方法返回所在类的类型! 好处:确定对象类型帮编译器更好定...

  • instancetype与id的区别

    一、什么是instancetype instancetype是clang 3.5开始,clang提供的一个关键字,...

  • instancetype 与 id的区别

    instancetype是clang 3.5开始提供的一个关键字,与id一样表示某个方法返回的未知类型的Objec...

  • instancetype 与 id 的区别

    id 1,在编译时不能判读对象的真实类型2,可以用来定义变量,可以作为返回值,可以定义形参 instancetyp...

  • instancetype 与 id 的区别

    1> instancetype 在类型表示上 跟 id一样 ,可以表示任何对象类型 2> instancetype...

网友评论

      本文标题:id 与 instancetype 区别

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