前言:nullable 和 nonnull 是為了迎合swift出的新特性,用于修飾屬性原朝、或者方法的參數(shù)驯嘱,或者方法的返回值。
- 好處:
1.迎合swift
2.提高我們開發(fā)人員開發(fā)規(guī)范,減少程序員之間不必要的交流
nullable
/*
nullable作用:表示可以為空
nullable書寫規(guī)范:
*/
// 方式一:
@property (nonatomic, strong, nullable) NSString *name;
// 方式二:
@property (nonatomic, strong) NSString *_Nullable name;
// 方式三:
@property (nonatomic, strong) NSString *__nullable name;
- 怎么用喳坠?
1.申明這個屬性調(diào)用set方法的時候可以給空值 nil 鞠评。如下
[self setName:(_Nullable NSString *)];//可以看到這里是可以傳空值的(nil)
[self setName:nil];//完整寫出來是這樣的
nonnull
nonnull作用:不能為空
/*
nonnull: non:非 null:空
nonnull作用:不能為空
書寫格式:
*/
// 方法一:
@property (nonatomic, strong, nonnull) NSString *icon;
// 方法二:
@property (nonatomic, strong) NSString * _Nonnull icon;
// 方法三:
@property (nonatomic, strong) NSString * __nonnull icon;
- 既然有為空的申明,也會有不為空的申明壕鹉,用法和上面一樣的
1.申明這個屬性調(diào)用set方法的時候不能傳空(nil)值剃幌,如下
[self setName:(_Nonnull NSString *)];//打出來會看到這個類型
[seltf setName:nil];//這樣寫會警告
//正確寫發(fā)法
[self setName:@"123"];