Xcode 6.3的發(fā)布挥吵,給我們帶來了OC的一個(gè)新特性:nullability
__nullable 和 __nonnull
兩個(gè)新的類型注解:__nullable和__nonnull,__nullable可以表示一個(gè)NULL或者nil值蔓榄,__nonnull剛好相反阿浓。
為了更好的解釋這個(gè)注釋的含義他嚷,還是直接上代碼吧:
在這里大家可以看到,當(dāng)我聲明一個(gè)函數(shù)芭毙,把參數(shù)注解設(shè)置為__nonnull以后筋蓖,我調(diào)用函數(shù)傳入nil就會有警告。
而且注解的添加位置很靈活退敦。額粘咖,我又在上面的圖片上加了點(diǎn)東西。
大家可以看到在方法定義或聲明里侈百,只要類型是一個(gè)簡單的對象瓮下,你就能以不帶下劃線的方式nullable或nonnull直接寫在左括號后面,@property也一樣钝域。
通過注解讽坏,我們可以很好的把OC和Swift混編結(jié)合起來,比如我有個(gè)usermodel
然后我通過swift的一個(gè)viewcontroller調(diào)用usermodel的時(shí)候通過__nullable和__nonnull就可以很好的與swift的optional結(jié)合起來使用了例证。
哦路呜,對了還有一種更好的添加注解的方式,你可以通過把Objective-C頭文件的某個(gè)區(qū)域標(biāo)記為需要審查,在這個(gè)區(qū)域內(nèi)胀葱,通過NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END來設(shè)置區(qū)域漠秋。