1.nullable:用于属性,返回值,参数中.提示信息;
目的:迎合swift,因为swift是强类型,必须指定对象是否为空,
好处:提高代码的规范。
写法1:@property (nonatomic, strong,nullable) NSString *name;
写法2:@property (nonatomic, strong) NSString * _Nullable name1;
------------泛型-------------
-(void)touchesBegan:(NSSet<UITouch *>*)touches withEvent:(UIEvent *)event
1.作用:规范性,限制类型。2.用法:类型<限制类型> 3.在声明类时候,不确定某些属性或方法类型,在使用这个类时候,就可以采用泛型。
用于类型转换父子类型转化。
__covariant 协变 子转父类
__contravariant 逆变 父类转自类
注意:在数组中,一般用可变数组添加方法,泛型生效,不可变数据,添加元素,泛型没有效果
-----------__kindof --------------
instancetype 是xcode5 出现的。之前用id
instancetype:自动识别当前的类;弊端:没有返回类型