// iOS9 新出的关键字:用来修饰属性,或者方法的参数,方法的返回值
// 好处
// 迎合swift
// 规范化
/*
nullable:表示可以为空
nullable 书写规范
方式一
@property(nonatomic, strong, nullable) NSString *name;
方式二
@property(nonatomic, strong) NSString *_Nullable name;
方式三
@property(nonatomic, strong) NSString *__nullable name;
*/
/*
nonnull:表示不可为空
@property(nonatomic, strong) NSString *_Nonnull name;
@property(nonatomic, strong, nonnull) NSString * name;
@property(nonatomic, strong) NSString *__nonnull name;
*/
/*
- (nonnull NSString *)test;
- ( NSString * _Nonnull)test1;
- ( NSString * _Nonnull)test2:(nonnull NSString *)test2;
*/
/*
在这个之间都默认添加 nonull 关键字
NS_ASSUME_NONNULL_BEGIN
NS_ASSUME_NONNULL_END
NS_ASSUME_NONNULL_BEGIN
@property (nonatomic) NSString *name22;
NS_ASSUME_NONNULL_END
*/
/*
null_resettable get方法不能为空 set可以为空 重写set或者get方法,处理参数值为空的情况
- (NSString *)name
{
if (_name == nil) {
_name = @"1";
}
return _name;
}
*/
/*
_Null_unspecified 不确定是否为空
书写方式只有这种
@property(nonatomic, strong,null_unspecified) NSString * name;
@property(nonatomic, strong) NSString * _Null_unspecified name;
@property(nonatomic, strong) NSString * __null_unspecified name;
*/
// 注意://iOS 9 新出的关键字,不能修饰基本数据类型