id和instancetype的区别
来源:互联网 发布:动态域名解析软件排名 编辑:程序博客网 时间:2024/05/22 05:01
我们在查找API的时候,经常都会见到instancetype和id,他们区别并不大,都可以代表任何类型的对象.但是他俩还是有细微的差别的,接下来让我们一步步去揭开他俩的面纱.
我们首先创建一个工程,新建一个Person类和一个Student类,并且Student类继承自Person类.
另外在说instancetype与id的区别之前,首先需要补充一个知识:当父类的便利构造器想要被子类继承的话,在父类的便利构造器中要使用[self alloc]来创建对象,这样才能使子类调用父类的便利构造器.
我们在主函数main.m中用Person的便利构造器来创建Student对象,同时调用test方法.
接下来,我们把环境改成MRC.
同样的在MRC环境中,依然可以运行成功.通过简单的例子,我们可以看到instancetype和id的区别如下:
区别1:
在ARC(Auto Reference Count)环境下:
instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型.
在MRC(Manual Reference Count)环境下:
instancetype和id一样,不做具体类型检查
区别2:
id可以作为方法的参数,但instancetype不可以
instancetype只适用于初始化方法和便利构造器的返回值类型
文/三木成森(简书作者)
原文链接:http://www.jianshu.com/p/bd913b3a8e93
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/bd913b3a8e93
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
0 0
- instancetype和id的区别
- instancetype和id的区别
- instancetype和id的区别
- instancetype 和id的区别
- instancetype 和 id 的区别
- instancetype和id的区别
- id 和 instancetype 的区别
- id 和instancetype的区别
- instancetype和id的区别
- instancetype和id的区别
- instancetype和id的区别
- instancetype和id的区别
- id和instancetype的区别
- instancetype 和 id 的区别
- instancetype和id的区别
- instancetype 和 id 的区别
- instancetype 和 id的区别
- id和instancetype的区别
- 随手写的一些异想天开的程序(1)
- 4412芯片GPIO功能说明
- HTTP报文
- Tips on non-standard evaluation in R
- MySQL 乱码之我见
- id和instancetype的区别
- zoj 3203 Light Bulb(三分)
- 自定义View需注意问题
- 20160524 数据分析与SAS1 数据模型
- iOS完整App资源收集
- 关于URLEncoder.encode和URLDecoder.decode的用法
- Delphi学习笔记五——方法
- bzoj 3150: [Ctsc2013]猴子 高斯消元
- CityMaker学习教程01 模块说明