1.nullable作用:表示可以為空
nullable書(shū)寫(xiě)規(guī)范:
// 方式一:
@property (nonatomic恳守,strong宫纬,nullable)NSString * name;
// 方式二
@property (nonatomic崭孤,strong)NSString *_Nullable name喉镰;
// 方式三
@property (nonatomic签杈,strong)NSString *__nullable name规脸;
2.nonnull:non:非 null:空
書(shū)寫(xiě)格式
// 方式一
@property(nonatomic,strong秘案,nonnull)NSString * icon砰苍;
// 方式二
@property(nonatomic潦匈,strong)NSString *_Nonnull icon;
// 方式三
@property(nonatomic赚导,strong)NSString *__nonnull icon茬缩;
在NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END之間,定義的所有對(duì)象屬性和方法默認(rèn)都是nonnull
3.方法中吼旧,關(guān)鍵字書(shū)寫(xiě)規(guī)范
- (nonnull NSString *)test:(nonnull NSString *)str;
- (NSString * _Nonnull)test1:(NSString * _Nonnull)str;
4.null_resettable: get:不能返回為空, set可以為空
// 注意;如果使用null_resettable,必須 重寫(xiě)get方法或者set方法,處理傳遞的值為空的情況
// 書(shū)寫(xiě)方式:
@property (nonatomic, strong, null_resettable) NSString *name;
5._Null_unspecified:不確定是否為空
書(shū)寫(xiě)方式:
// 方式一
@property (nonatomic, strong) NSString *_Null_unspecified name;
// 方式二
@property (nonatomic, strong) NSString *__null_unspecified name;
iOS9新出的關(guān)鍵字:用來(lái)修飾屬性,或者方法的參數(shù),方法的返回值
好處:
1.迎合swift
2.提高我們開(kāi)發(fā)人員開(kāi)發(fā)規(guī)范,減少程序員之間交流
注意:iOS9新出關(guān)鍵字nonnull,nullable只能修飾對(duì)象,不能修飾基本數(shù)據(jù)類(lèi)型