常见关键字
-
迎合swift语言,在swift中任何一个对象都是需要约束是否为空。
- 好处:提高开发规范
- 作用:在方法中才发挥作用,表示方法的参数或者返回值是否为空
注意
- 只能使用于对象类型
- NS_ASSUME_NONNULL_BEGIN与 NS_ASSUME_NONNULL_END之间所有的对象都是nonnull
eg:
为空时
nullable:get,set可能为空
方式一:
@property (nonatomic, strong, nullable) NSString *name;
方式二:
@property (nonatomic, strong) NSString * _Nullable name;
方式三:
@property (nonatomic, strong) NSString * __nullable name;非空时
nonnull:get,set非空
方式一:
@property (nonatomic ,strong, nonnull) NSString *name;
@property (nonatomic ,strong) NSString * _Nonnull name;
@property (nonatomic ,strong) NSString * __nonnull name;不确定
_Null_unspecified:不确定
null_resettable:set可以为空,get不可以为空
注意:必须要处理为nil的情况
方式一:
@property (nonatomic ,strong, null_resettable) NSString *name;
======
泛型
- 泛型:限制类型
- 泛型使用场景
- 用于集合,数组,字典,NSSet
- 当声明一个类的时候,某个属性不确定类型,就可以使用泛型。
泛型好处
- 用于提高开发规范,一看就知道集合中是什么东西
- 取出的元素可以直接使用点语法
- 泛型书写
- 如何定义泛型:在类型后面限制,<限制类型>
- 如何声明泛型:在声明一个类的时候,在类型后面<泛型名称>,泛型名称随意取
- 注意
- 并不是任何对象都能使用泛型
* 泛型只用于方法调用
自定义泛型(声明泛型)
Person:语言属性,iOS,Java
===
代码块
**Person Language iOS 类** - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.Person
====
kingOf
__kindof:
相当于,修饰对象,用于方法返回值,描述返回的类型是当前类或者子类-
id:
- 不能使用点语法
- 能调用任何对象的方法,导致不能进行编译检查