oc特有语法
1. @property
@property 用来自动生成成员变量的get/set方法声明(xcode4.4以前)
> 告诉property要生成的get/set方法声明的成员变量类型是什么
> 告诉property要生成的get/set方法是哪个属性的,属性名称去掉下划线
//property是一个编译器特性
@property int age;//注意:这个地方成员变量的名称写去掉下划线后的
xcode4.4以后property做了增强
> 帮助我们自动生成get/set方法的声明
> 帮助我们自动生成get/set方法的实现
> 如果没有手动声明成员变量,perperty会在.m文件中自动帮我们生成一个_开头的成员变量
@property int age;
>注意点:如果想让子类继承父类的成员变量,还是必须在.h中手动写成员变量
// 重写set方法
// 1.当想控制外界传入的一些数据的合理性安全性的时候我们就需要手动实现set方法
// 2.当我们手动同时实现了set/get方法的时候,property就不会自动给我们生成成员变量(一般情况下不会手动实现get方法,很少有情况需要去控制get方法,一般情况下直接取值就可以了)
2. @synthesize
//@synthesize 用来自动生成get/set方法的实现
// @synthesize age 意思是给.h文件中名称叫做age的property生成实现
//@synthesize age = _age;
// 如果没有明确告诉synthesize后面的age要赋值给谁它就会赋值给和它同名的成员变量
@synthesize age;
3. id类型
4. instancetype
instancetype在类型表示上,跟id一样,可以表示任何对象类型
instancetype只能用在返回值类型上,不能像id一样用在参数类型上
instancetype比id多一个好处:编译器会检测instancetype的真实类型