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: “-”和“+”修饰的方法的异同: “-”方法是实例方法,只有实例化 的对象可以调用
“+”方法是类方法,无需实例化,直接用类名就可以直接访问
便利构造器封装了对象的整个过程,进一步简化了对象创建的步骤
42.OC中instancetype与id的区别的更多相关文章
- OC中instancetype与id的区别
1.在ARC环境下: instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型. 2.在MRC环境下: instancetype和id一样,不做具体类型检 ...
- Objective-C中instancetype和id的区别
要区分instancetype和id,首先要弄清楚什么是关联返回类型(Related Result Type). 关联返回类型即一个方法的返回类型就是调用这个方法的调用者的类型.具有下列条件的方法具有 ...
- Objective-C中的instancetype与id的区别
一.什么是instancetype instancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象.我们都知道未知类型的的对象可以 ...
- instancetype和id的区别,objective-c
instancetype clang 3.5 提供的关键字, 表示:某方法返回未知类型的OC对象 都知道id任意类型关键字,为什么还会出现一个新的关键字? 返回关联类型 1.类方法中,alloc ...
- [转]html js中name和id的区别和使用分析
js中web页面元素的调用可以有两种识别方法:id和name 自己在用的过程中总结一下id和name的使用区别. 一,使用范围 除 BASE, HEAD, HTML, META, SCRIPT, ST ...
- instancetype和id的区别
一.什么是instancetype instancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象.我们都知道未知类型的的对象可以 ...
- instancetype 和 id 的区别
原文:http://blog.csdn.net/sirodeng/article/details/50516478 一.什么是instancetype instancetype是clang 3.5开始 ...
- Windows中句柄和ID的区别
写在前面:这里介绍句柄 对于“句柄”,在下一直停留在一知半解的认识层面,近日在下学习Windows编程,决定趁此机会将句柄彻底搞清楚.查阅了一些网络上的资料,发现网络上的讲解大概可以分为两类:一种是以 ...
- input中name和id的区别
一直很困惑,表单里面input标签有id和name,它们之间到底有什么区别自己很少去想,只知道一般的场景该怎么使用,今天就在网上搜索了一下,自己也总结一下.为什么有了ID还要有Name呢?其实ID就像 ...
随机推荐
- Navicat连接mysql(高级选项配置)
.对于服务器上的mysql中存在多个数据库,我们如果全部连接显示,但是平时使用的只有一个库,那么查询的速度会很慢的.所以,今天和大师兄学习了一招.只连接一个自己使用的数据库.配合高级设置,提升很多. ...
- 牛客网Wannafly挑战赛15 B车辆安排(模拟)AND C 出队(规律)
传送门 :B题:点我 C题: 点我 题目描述 有n个队伍,每个队伍的人数小于等于5,每辆车最多坐5个人,要求一个队伍的人都在一辆车上,求最少的车数 输入描述: 第一行n第二行n个数,表示每个队伍的人数 ...
- 165. Compare Version Numbers (String)
Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 & ...
- Codeforces Beta Round #65 (Div. 2)
Codeforces Beta Round #65 (Div. 2) http://codeforces.com/contest/71 A #include<bits/stdc++.h> ...
- 【疑】checkpoint防火墙双链路切换导致丢包问题
拓扑: 外线联通.电信各200M,通过边界交换机(纯二层,用于分线),分别接到主.备防火墙. 具体配置如下: 故障现象: 由于电信光缆中断导致电信链路不可用.大量员工反映频繁出现断网现象,通过公网注册 ...
- 实现mapper接口注入的两种方式,以及后台的使用区别
1.使用模板方式: <!--使用模板类实现mybatis --> <bean id="sqlSession" class="org.mybatis.sp ...
- Composer 安装以及使用方法
Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. Linux 下安装 curl -sS https://getcomposer.org/ ...
- Django之ModalForm
ModelForm 自己定义的form--->Form--->BaseForm 自己定义的ModelForm--->ModelForm--->BaseModelForm---& ...
- Aspose.words一 DOM结构
2.文档对象模型概述 2.1 DOM介绍 Aspose.Words的文档对象模型(以下简称DOM)是一个Word文档在内存中的映射,Aspose.Words的DOM可以编程读取.操作和修改Word文档 ...
- js拷贝指定内容到剪切板
function copyTextToClipboard(text) { var textArea = document.createElement("textarea"); te ...