iOS_关键字nullable、nonnull、null_resettable、_Null_unspecified
来源:互联网 发布:淘宝没有盗版书了 编辑:程序博客网 时间:2024/06/05 12:50
- 关键字:
nullable
,作用:表示此值可以为空。 nullable
只能修饰对象,不能修饰基本数据类型。- 书写方式示例,如下:
// 方式一:@property (nonatomic, strong, nullable) NSString* nameOne;// 方式二:@property (nonatomic, strong) NSString* _Nullable nameTwo;// 方式三:@property (nonatomic, strong) NSString* __nullable nameThree;
- 关键字:
nonnull
,作用:表示此值非空 nonnull
只能修饰对象,不能修饰基本数据类型。- 书写方式示例,如下:
// 方式一:@property (nonatomic, strong, nonnull) NSString* genderOne;// 方式二:@property (nonatomic, strong) NSString* _Nonnull genderTwo;// 方式三:@property (nonatomic, strong) NSString* __nonnull genderThree;
- 也可以在定义方法的时候使用:
// 返回值和参数都不能为空// 方式一:- (nonnull NSString *)functionNameOne:(nonnull NSString *)name;// 方式二:- (NSString* _Nonnull)functionNameTwo:(NSString * _Nonnull)name;
如果仅仅是某一个属性值不能为空,可以单独对其使用
nonnull
关键字。如果有较多的属性值和方法中的值不能为空,可以使用
NS_ASSUME_NONNULL_BEGIN
和NS_ASSUME_NONNULL_END
;在这两个之间的对象属性和方法默认都是nonnull
。在
UIView
头文件内,我们可以看到上述宏的使用。
- 关键字:
null_resettable
,作用:get
不能返回空,set
可以为空 - 注意:如果使用
null_resettable
,必须重写get
方法或者set
方法,处理传递的值为空的情况。 - 书写方式示例,如下:
@property (nonatomic, strong, null_resettable) NSString* name;// set- (void)setName:(NSString *)name{ if (name == nil) { name = @"wangsk"; } _name = name;}// get- (NSString *)name{ if (_name == nil) { _name = @"wangsk"; } return _name;}
- 关键字:
_Null_unspecified
,作用:不确定此值是否为空 - 书写方式示例,如下:
// 方式一:@property (nonatomic, strong) NSString* _Null_unspecified nameOne;// 方式二:@property (nonatomic, strong) NSString* __null_unspecified nameTwo;
阅读全文
0 0
- iOS_关键字nullable、nonnull、null_resettable、_Null_unspecified
- iOS之iOS9新特性——nonnull、nullable、null_resettable、_Null_unspecified
- oc——nonnull、nullable、null_resettable、__null_unspecified
- iOS 9新特性-nonnull,nullable和null_resettable
- nonnull, nullable
- iOS修行---nonnull,nullable修饰
- 有关我们经常会看到德 nonnull和nullable 关键字的使用
- iOS-泛型(nullable/null_resettable/__kindof用法)
- 开发笔记 - nil / Nil / NULL / NSNull / nullable / __nullable / nonnull / __nonnull
- Nullable
- @Nullable
- iOS --_Nonnull _Nullable _Null_unspecified
- @SystemApi @hide @NonNull @TargetApi
- Android 关于@NonNull
- nonnull、泛型、__kindof
- C#学习篇(八)Nullable类型、checked关键字、运算符重载
- System.Nullable
- nullable类型
- opencv-机器学习
- 运维之shell篇------1. Shell概述 、 编写及执行脚本 、 Shell变量
- 短信接口防刷攻略
- vue.js的devtools安装
- FIFO、LRU、OPT这三种置换算法的缺页次数
- iOS_关键字nullable、nonnull、null_resettable、_Null_unspecified
- 2017.10.23
- java链接用户名密码mongodb
- java 私有属性加get/set方法跟直接把属性设置成public有区别吗?
- Implement queue with two stack 用两个堆实现队列
- java中new Class[]{Socket.class}写法的意思
- 学习设计模式的目标
- 封装ArrayList
- 阿里云媒体转码MTS使用教程