- 关键字:修饰属性,方法的参数,方法返回值,规范开发。
好处:
- 1.提高程序员规范,减少交流成本,程序员一看,就知道怎么赋值。
- 注意:只能用于声明对象,不能声明基本数据类型,因为只有对象才能为nil。
nullable
- nullable:可以为nil
方式一:
@property (nonatomic, strong, nullable) NSString *name;
方式二:
@property (nonatomic, strong) NSString * _Nullable name;
方式三:
@property (nonatomic, strong) NSString * __nullable name;
nonnull
- nonnull:表示属性不能为空
方式一:
@property (nonatomic, strong, nonnull) NSString *name;
方式二:
@property (nonatomic, strong) NSString * _Nonnull name;
方式三:
@property (nonatomic, strong) NSString * __nonnull name;
在NS_ASSUME_NONNULL_BEGIN与NS_ASSUME_NONNULL_END之间所有的对象属性,方法参数,方法返回值,默认都是nonnull。
null_resettable
- null_resettable:可以重新设置空,set方法可以为空,get不能为空。
方式一:
@property (nonatomic, strong, null_resettable) NSString *name;
注意:用null_resettable属性,必须重写set,或者get方法,处理传值为nil的情况,可以模仿控制器view的get方法,当view为nil,就自己创建一个.
_Null_unspecified
- _Null_unspecified:不确定是否为空.
方式一:
@property (nonatomic, strong) NSString * _Null_unspecified name;