iOS修行---nonnull,nullable修饰
@property(nonatomic,strong,nonnull) NSString *n1;
@property(nonatomic,strong,nullable) NSString *n2;
-(NSString *)test:(nullable NSString *)n3;
简单理解,就是经过nonull修饰的n1不能被赋予nil,而nullable修饰的n2是可以为空的,如:
n1 = nil;这样Xcode是会warning的,而,n2 = nil;是可以滴
也可以如下,利用宏来大范围指定
NS_ASSUME_NONNULL_BEGIN
@property(nonatomic,strong) NSString *n1;
@property(nonatomic,strong,nullable) NSString *n2;
-(NSString *)test:(NSString *)n3;
NS_ASSUME_NONNULL_END
这样在BEGIN和END范围内的,都会被赋予nonnull,但也可以显示的指定nullable,如上,n1和n3是nonnull的,但是n2时nullable