__nullable和__nonnull

Xcode 6.3的发布,给我们带来了OC的一个新特性:nullability

__nullable 和 __nonnull

两个新的类型注解:__nullable和__nonnull,__nullable可以表示一个NULL或者nil值,__nonnull刚好相反。

为了更好的解释这个注释的含义,还是直接上代码吧:

__nullable和__nonnull_第1张图片

在这里大家可以看到,当我声明一个函数,把参数注解设置为__nonnull以后,我调用函数传入nil就会有警告。

而且注解的添加位置很灵活。额,我又在上面的图片上加了点东西。


__nullable和__nonnull_第2张图片

大家可以看到在方法定义或声明里,只要类型是一个简单的对象,你就能以不带下划线的方式nullable或nonnull直接写在左括号后面,@property也一样。

通过注解,我们可以很好的把OC和Swift混编结合起来,比如我有个usermodel


__nullable和__nonnull_第3张图片
__nullable和__nonnull_第4张图片

然后我通过swift的一个viewcontroller调用usermodel的时候通过__nullable和__nonnull就可以很好的与swift的optional结合起来使用了。


__nullable和__nonnull_第5张图片
__nullable和__nonnull_第6张图片

哦,对了还有一种更好的添加注解的方式,你可以通过把Objective-C头文件的某个区域标记为需要审查,在这个区域内,通过NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END来设置区域。

你可能感兴趣的:(__nullable和__nonnull)