相信在开发过程中,很多小伙伴们儿都会见到nullable,nonnull,null_resettable,_Null_unspecified
这几个关键字,但是并不知道它们是什么意思,下面我就给大家一一解释一下。

在解释这四个关键字之前,先给大家普及一下关键字是干嘛的。

关键字:可以用于属性,方法返回值和参数中。

关键字作用:提示作用,告诉开发者属性信息。

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

nullable作用:可能为空。

语法如下:

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

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

nonnull作用:不能为空。

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

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

null_resettable这个相应复杂一点,意思是:必须要处理为空情况,重写get方法,也就是get方法不能返回nil,set可以传入为空。

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

- (NSString *)name

{

if (_name == nil) {

_name = @"";

}

return _name;

}

_Null_unspecified作用:不确定是否为空,这个基本上用不到。

下面补充个注意点:

1.关键字仅仅是提供警告,并不会报编译错误。当属性关键字为nonnull的时候,即使属性置为nil,也只是报警告而已,不会报错。

2.关键字不能用于基本数据类型,只能用于对象。

转载于:https://www.cnblogs.com/yandada/p/6170091.html

关键字nullable,nonnull,null_resettable,_Null_unspecified详解相关推荐

  1. Linux grep多个关键字“与”和“或”使用详解

    Linux grep命令用于查找文件里符合条件的字符串. grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来. ...

  2. mysql 关键字 status_Mysql show status命令详解

    Mysql show status命令详解 ## 介绍 SHOW STATUS提供服务器的状态信息. ## 命令用法 ```sql mysql> show status; mysql> s ...

  3. C语言中定义常量的关键字是什么,C++_详解C语言中const关键字的用法,关键字const用来定义常量,如 - phpStudy...

    详解C语言中const关键字的用法 关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const ...

  4. java volatile关键字的作用_java volatile关键字作用及使用场景详解

    1. volatile关键字的作用:保证了变量的可见性(visibility).被volatile关键字修饰的变量,如果值发生了变更,其他线程立马可见,避免出现脏读的现象.如以下代码片段,isShut ...

  5. 2.Linux中grep多个关键字“与”和“或”使用详解

    1.Linux grep命令用于查找文件里符合条件的字符串    grep 命令非常常用,经常用于匹配文本字符 grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样 ...

  6. Linux grep多个关键字“与”“或”“非”使用详解

    来源:http://blog.sina.com.cn/s/blog_5ceb51480102wli8.html Linux grep命令用于查找文件里符合条件的字符串. grep指令用于查找内容包含指 ...

  7. java中strictfp关键字,java strictfp关键字用法大全详解

    一.strictfp关键字简介 strictfp是Java中提供的一个保留关键字,该关键字是从这第java JDK2版本儿开始出现的一直沿用到现在,只不过很多情况下都不怎么使用,所以容易被大家遗忘,因 ...

  8. SWI指令---软件中断实例详解(原创)

                              SWI指令---软件中断实例详解 关键字:  SWI,指令,软件中断,实例,详解 SWI,即software interrupt软件中断.该指令产生 ...

  9. Oracle表空间_PK是什么意思,Oracle表空间详解

    关键字:Oracle表空间详解 一.============  查询 =================== 1.查询oracle用户的默认表空间和临时表空间 select default_table ...

最新文章

  1. 皮一皮:这个职业是我想得那样吗?
  2. li浮动时ul自适应高度方法
  3. 数据库开发——MySQL——基本操作
  4. highcharts第一篇---简介和使用
  5. linux ip隧道技术,linux之IP隧道配置
  6. flex 左右布局_面试必考点:前端布局知识
  7. 我的MVVM框架 v0.1发布
  8. 通过Intel XDK编写跨平台app(二)
  9. js 子窗口关闭并且刷新父窗口
  10. webpack图片打包
  11. Web 前端视频资源分享(Bootstrap/Vue/小程序)
  12. 阿里云短信验证码注册
  13. 微信小程序marker官方示例中,模拟器和真机显示不同的原因
  14. push rejected by remote
  15. 人行征信中心提醒:不要随意授权征信查询!
  16. matlab编写求解二阶常微分方程,求一个复杂的二阶常微分方程的数值解,不会写代码= =...
  17. 使用aireplay-ng抓握手包笔记
  18. 5年专业研究,这份云原生安全指南请查收
  19. Git拉取指定的远程分支
  20. python机票_某哪儿机票JS解密(3)--python调用node产生正确的航线和pre

热门文章

  1. js总结1:数据类型
  2. 计算机网络—UDP协议
  3. Pikachu实验重现2(Sql的注入)
  4. bzoj 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场(DFS)
  5. bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压)
  6. 基于水平集方法和G0模型的SAR图像分割
  7. jquery系列教程3-DOM操作全解
  8. 环,模,补码,负数的表示与减法实现
  9. html图片上下高度不一样,【已解决】HTML图片横向布局中第一张图片和其他图片高度不一致...
  10. 包含对象的json格式_如何把JSON数据格式转换为Python的类对象?