关键字(nonnull、nullable、null_resett
2021-02-23 本文已影响0人
牛奶红茶
1.nonnull,不能为空,用来修饰属性,方法参数,方法返回值
->修饰属性
@property (nonatomic, strong,nonnull) NSString *name;
@property (nonatomic, strong) NSString * __nonnull name1;
@property (nonatomic, strong) NSString * _Nonnull name2;
也可以在自定义方法的时候使用
-(nonnull NSString *)test:(nonnull NSString *)name;
-(NSString * _Nonnull)test1:(NSString *_Nonnull)name;
在使用上面方法和属性的时候就会有相应的提示


2.nullable,表示可以为空(使用方法和上面一样)


3.null_resettable,get不能返回空,set可以为空(注意:使用null_resettable必须重写get方法和set方法,处理传递的值为空的情况)
4._Null_unspecified,不确定是否为空
//这个方法基本上用不到,了解就可以了
@property (nonatomic, strong) NSString *__null_unspecified name;
@property (nonatomic, strong) NSString *_Null_unspecified name;
--------补充-----
1.关键字仅仅是提供警告,并不会报编译错误。当属性关键字为nonnull的时候,即使属性置为nil,也只是报警告而已,不会报错
2.关键字不能用于基本数据类型,只能用于对象。