iOS9新推出关键字nullable、nonnulla、null_resettable

在2014,随着苹果公司swift语言的推出,为了能让Object-C与swift和谐的混合开发,而swift以严谨的数据类型而著称,因此,OC不得不为swift而做出改变。接下来,我们简单的说几点iOS 9 Object-C为swift做出的改变。

先看这一张图


nullable.png

正如图中展示的,这一类的关键字有:nullable、nonnulla、null_resettable、_Null_unspecified
解释:

nullable作用:可能为空(swift中有一个可选类型,你可以理解为可能为空)。
nullable使用:
    nullable 语法1
    @property (nonatomic, strong, nullable) NSString *name;
 
    nullable 语法2 * 关键字 变量名
    @property (nonatomic, strong) NSString * _Nullable name;
nonnull作用:不能为空
 
 nonnull 语法1
 @property (nonatomic, strong, nullable) NSString *name;
 
 nonnull 语法2 * 关键字 变量名
 @property (nonatomic, strong) NSString * _Nonnull name;
 
null_resettable:必须要处理为空情况,也就是重写get方法,如果为空,返回一个默认的值。
 
 null_resettable作用:get方法不能返回nil,set可以传入为空
 
 null_resettable 语法1
 @property (nonatomic, strong, null_resettable) NSString *name;

_Null_unspecified:不确定是否为空,这个使用的较少。

// 再看这一张图,注意结尾处有对应的NS_ASSUME_NONNULL_END


NS_ASSUME_NONNULL_BEGIN.png

关键字注意点
在NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END之间默认是nonnull
关键字不能用于基本数据类型(int,float),nil只用于对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容