iOSinstancetype与id的比较

instancetype是clang3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象。

创新互联是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,达州电信机房,海外高防服务器,服务器机柜,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。

instancetype只能作为返回值,不能像id那样作为参数。

使用 instancetype 返回的一定是调用该方法的实例,而id则不一定,因为id是作为一个范型来使用的

相同点:都可以作为方法的返回类型

①instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;

②instancetype只能作为返回值,不能像id那样作为参数

使用instancetype有三点好处:

1、明确性。代码只做你让它做的事,而不是其他。

2、程式化。你会养成好习惯,这些习惯在某些时候会很有用,而且肯定有用武之地。

3、一致性。让代码可读性更好。

用instancetype代替init作为返回值的确没有技术上的好处。但这是因为编译器自动将id转化成了instancetype。你以为init返回的值类型是id,其实编译器返回了instancetype。

在写一条返回id的消息前,问自己:这个类返回实例吗?如果返回,用instancetype。

肯定有需要返回id的时候,但你用instancetype的频率应该会更高


名称栏目:iOSinstancetype与id的比较
文章来源:http://bzwzjz.com/article/jiochp.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作 营销型网站建设 定制网站设计 网站设计 古蔺网站建设 成都网站建设 网站建设 网站制作公司 手机网站建设 H5网站制作 重庆网站建设 重庆企业网站建设 教育网站设计方案 网站建设公司 网站建设改版 定制网站建设多少钱 成都商城网站建设 专业网站建设 网站设计 企业手机网站建设 企业网站建设 高端品牌网站建设