美文网首页Apple
Objective-C-关键字nullable、nonnull、

Objective-C-关键字nullable、nonnull、

作者: ruizuo007 | 来源:发表于2020-10-17 16:38 被阅读0次

前言

  • 关键字注意点

① 在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

关于nullable、nonnull、null_resettable、null_unspecified

  • 可以用于属性、方法返回值、方法参数中
  • 作用:提示作用,告诉开发者能不能空
  • 目的:迎合swift,swift是个强语言,swift必须要指定一个对象是否为空
  • 好处:提高代码规划,减少沟通成本
  • 这些关键字仅仅是提供警告,并不会报编译错误

① nullable

nullable使用范围:可以用于属性、方法返回值、方法参数中
nullable作用:可能为空

nullable 语法1:

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

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

② nonnull

nonnull使用范围:可以用于属性、方法返回值、方法参数中
nonnull作用:不能为空

nonnull 语法1:

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

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

③ null_resettable

null_resettable使用范围:可以用于属性、方法返回值、方法参数中
null_resettable作用:set可以传入为空,get方法不能返回nil,必须要处理为空情况,重写get方法

null_resettable 语法:

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

④ null_unspecified

不确定是否为空

相关文章

网友评论

    本文标题:Objective-C-关键字nullable、nonnull、

    本文链接:https://www.haomeiwen.com/subject/irhfmktx.html