iOS-关键字-nullable nonnull null_resettable _Null_unspecified

一.关键字注意点


 在NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END这两个之间的代码默认是nonnull

 

 关键字不能用于基本数据类型(int,float),nil只用于对象

 

二.怎么去研究新特性? 

使用新的xcode创建项目,用旧的xcode去打开

   2017 Xcode9  iOS11

   2016 Xcode8  iOS10

   2015 Xcode7  iOS9

   2014 Xcode6  iOS8

   2013 Xcode5  iOS7

   2012 Xcode4  iOS6

 

三.出了哪些新特性 :可以用于属性,方法返回值和方法参数中

    关键字作用:提示作用,告诉开发者能不能空

    关键字目的:迎合swift,swift是个强语言,swift必须要指定一个对象是否为空

    关键字好处:提高代码规划,减少沟通成本

    关键字仅仅是提供警告,并不会报编译错误

1.nullable

    nullable使用范围:可以用于属性,方法返回值和方法参数中

    nullable作用:可能为空

 

    nullable 语法1

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

    nullable 语法2 * 关键字 变量名

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

 

2.nonnull

 nonnull使用范围:可以用于属性,方法返回值和方法参数中

 nonnull作用:不能为空

 

 nonnull 语法1

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

 nonnull 语法2 * 关键字 变量名

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

 

3.null_resettable

 null_resettable使用范围:可以用于属性,方法返回值和方法参数中

 null_resettable作用:set可以传入为空,get方法不能返回nil,必须要处理为空情况,重写get方法

 

 null_resettable 语法

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

 

4._Null_unspecified:不确定是否为空

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章