iOSinstancetype与id的比较-创新互联
instancetype是clang3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象。
钦南网站建设公司创新互联建站,钦南网站设计制作,有大型网站制作公司丰富经验。已为钦南近千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的钦南做网站的公司定做!instancetype只能作为返回值,不能像id那样作为参数。
使用 instancetype 返回的一定是调用该方法的实例,而id则不一定,因为id是作为一个范型来使用的
相同点:都可以作为方法的返回类型
①instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;
②instancetype只能作为返回值,不能像id那样作为参数
使用instancetype有三点好处:
1、明确性。代码只做你让它做的事,而不是其他。
2、程式化。你会养成好习惯,这些习惯在某些时候会很有用,而且肯定有用武之地。
3、一致性。让代码可读性更好。
用instancetype代替init作为返回值的确没有技术上的好处。但这是因为编译器自动将id转化成了instancetype。你以为init返回的值类型是id,其实编译器返回了instancetype。
在写一条返回id的消息前,问自己:这个类返回实例吗?如果返回,用instancetype。
肯定有需要返回id的时候,但你用instancetype的频率应该会更高
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:iOSinstancetype与id的比较-创新互联
网页URL:http://azwzsj.com/article/dsscjj.html