1、nonnull:字面意思就能知道:不能为空(用来修饰属性,或者方法的参数,方法的返回值)

//三种使用方式都可以2 @property (nonatomic, copy, nonnull) NSString *name;3 4 @property (nonatomic, copy) NSString * _Nonnull name;5 6 @property (nonatomic, copy) NSString * __nonnull name;7 8 //补充(不适用于assign属性,因为它是专门用来修饰指针的)9 @property (nonatomic, assign) NSUInteger age;
10
11 //补充(用下面宏包裹起来的属性全部都具nonnull特征,当然,如果其中某个属性你不希望有这个特征,也可以自己定义,比如加个nullable)
12 //在NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END之间,定义的所有对象属性和方法默认都是nonnull1 //也可以在定义方法的时候使用
2 //返回值和参数都不能为空
3 - (nonnull NSString *)test:(nonnull NSString *)name;
4 //同上
5 - (NSString * _Nonnull)test1:(NSString * _Nonnull)name;

2、nullable:表示可以为空(使用方法和上面几乎一样,但是没有发现和上面类似的宏)


1 //三种使用方式
2 // 方式一:
3 @property (nonatomic, copy, nullable) NSString *name;
4 // 方式二:
5 @property (nonatomic, copy) NSString *_Nullable name;
6 // 方式三:
7 @property (nonatomic, copy) NSString *__nullable name;

3、null_resettable: get:不能返回空, set可以为空(注意:如果使用null_resettable,必须 重写get方法或者set方法,处理传递的值为空的情况)

注意:这些关键字在修饰时在括号里还是括号外,是否存在下划线

_nullable、nullable、nonnull区别相关推荐

  1. @NotNull :@NotEmpty @NotBlank :@NonNull:@Nullable 的区别

    @NotNull : 用在基本类 型上 不能为null 但可以为空字符串 @NotEmpty : 用在集合类上 不能为空 并且长度必须大于0 @NotBlank : 只能作用在String上,不能为n ...

  2. nullable、nonnull、__nullable、__nonnull、_Nullable、__Nonnull 的区别

    在苹果自己的API中, 我们也见过许多的参数的修饰符, 比如说在方法中修饰参数可否为空的标识.今天来总结下 nullable, nonnull, __nullable, __nonnull, _Nul ...

  3. 关键字nullable,nonnull,null_resettable,_Null_unspecified详解

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

  4. java中的nullable_java – @NonNull和@Nullable的正确用法是什么?

    我对这些注释的正确使用感到困惑. android.support.annotation.NonNull; android.support.annotation.Nullable; @NonNull文档 ...

  5. java 使用nullable_java – @NonNull和@Nullable的正确用法是什么?

    我对这些注释的正确使用感到困惑. android.support.annotation.NonNull; android.support.annotation.Nullable; @NonNull文档 ...

  6. 如何优雅地根治null值引起的Bug!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:https://lrwinx.github.io  写在前面 ...

  7. Java:如何更优雅的处理空值?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:lrwinx https://lrwinx.github.i ...

  8. swing查询输入框无值时出现null异常_如何优雅处理代码中 Null 值引起的 Bug?告别 Null 恐惧症!...

    导语 在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不这头绪,它的出现很有可能和当前的业务逻辑并没有关系.但它会让你很头疼. 有时候,更可怕的是系统因为这些空值的 ...

  9. 老大难的空指针,如何优雅处理?

    作者:Lrwin http://lrwinx.github.io/2018/08/30/java匠人手法-优雅的处理空值 导语 在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断, ...

最新文章

  1. C++ 中 inline 用法概述
  2. CyclicBarrier和CountDownLatch区别
  3. 史蒂夫·乔布斯很懂团队建设
  4. using(别名)和range based for
  5. html的闪烁字,HTML最简单的文字闪烁代码
  6. 树的度,结点,叶子结点,二叉树
  7. [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(5)
  8. Android中创建自己的对话框
  9. LeetCode 372. 超级次方(快速幂)
  10. php time豪秒_PHP精确到毫秒秒杀倒计时实例详解
  11. SQL Server 游标
  12. Java实现家庭账户收支记录表
  13. Pascal到c++,求大佬翻译!
  14. GNSS数据下载脚本(Perl+Python)
  15. TCP Dup ACK xxx#x分析
  16. java 线性回归_Java线性回归
  17. Led智慧照明系统功能
  18. android studio高考倒计时,2019高考倒计时锁屏app-高考倒计时锁屏软件预约v1.0.5-乐游网安卓...
  19. Bursuite暴力破解实践
  20. (十六)【模电】(放大电路中的反馈)反馈的概念及判断

热门文章

  1. 使用vmware安装ubuntu系统时遇到“Intel VT-x处于禁用状态”问题解决方法
  2. cdn服务器搭建步骤
  3. RabbitMq的安装与配置(Windows平台下)
  4. 好人好当,坏人难当。
  5. 软件分析_csdn app
  6. 科幻3D场景必备要素—园区篇
  7. 蓝色简约储云商城官网源码
  8. 分享:选择一颗晶振,怎么看晶振的主要参数?
  9. vmware 连接外部设备
  10. 求函数f(x)=sinx的导数,证明(sinx)'=cosx,详细过程