Objective-C-關(guān)鍵字nullable、nonnull、null_resettable、null_unspecified

前言

  • 關(guān)鍵字注意點(diǎn)

① 在NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END這兩個之間的代碼默認(rèn)是nonnull
② 關(guān)鍵字不能用于基本數(shù)據(jù)類型(int、float)
③ nil只用于對象

  • 怎么去研究新特性?

使用新的Xcode創(chuàng)建項(xiàng)目,用舊的xcode去打開:
2017 Xcode9 iOS11
2016 Xcode8 iOS10
2015 Xcode7 iOS9
2014 Xcode6 iOS8
2013 Xcode5 iOS7
2012 Xcode4 iOS6

關(guān)于nullable、nonnull、null_resettable、null_unspecified

  • 可以用于屬性、方法返回值、方法參數(shù)中
  • 作用:提示作用,告訴開發(fā)者能不能空
  • 目的:迎合swift,swift是個強(qiáng)語言,swift必須要指定一個對象是否為空
  • 好處:提高代碼規(guī)劃,減少溝通成本
  • 這些關(guān)鍵字僅僅是提供警告,并不會報編譯錯誤

① nullable

nullable使用范圍:可以用于屬性、方法返回值、方法參數(shù)中
nullable作用:可能為空

nullable 語法1:

@property (nonatomic, strong, nullable) NSString *name;
nullable 語法2:

@property (nonatomic, strong) NSString * _Nullable name;

② nonnull

nonnull使用范圍:可以用于屬性、方法返回值、方法參數(shù)中
nonnull作用:不能為空

nonnull 語法1:

@property (nonatomic, strong, nonnull) NSString *name;
nonnull 語法2:

@property (nonatomic, strong) NSString * _Nonnull name;

③ null_resettable

null_resettable使用范圍:可以用于屬性、方法返回值、方法參數(shù)中
null_resettable作用:set可以傳入為空,get方法不能返回nil,必須要處理為空情況,重寫get方法

null_resettable 語法:

@property (nonatomic, strong, null_resettable) NSString *name;

④ null_unspecified

不確定是否為空

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容