iOS 泛型中nullable、null resettable、null kindof 用法详解

 更新时间:2016年09月08日 11:41:18   作者:邱学伟  
这篇文章主要介绍了iOS 泛型中nullable、null resettable、null kindof 用法详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

 iOS9新出的关键字:用来修饰属性,或者方法的参数,方法的返回值

iOS9新出关键字nonnull,nullable,null_resettable,_Null_unspecified

需要注意的一点只能修饰对象,不能修饰基本数据类型.

虽然在项目的代码编写中不会经常用到,不过在调用苹果系统方法的时候还是会经常遇到,需要做一个总结

nullable作用:表示可以为空

nullable书写规范:
// 方式一:
@property (nonatomic, strong, nullable) NSString *name;
// 方式二:
@property (nonatomic, strong) NSString *_Nullable name;
// 方式三:
@property (nonatomic, strong) NSString *__nullable name;

nonnull作用:不能为空

nonnull: non:非 null:空
书写格式:
@property (nonatomic, strong, nonnull) NSString *icon;
@property (nonatomic, strong) NSString * _Nonnull icon;
@property (nonatomic, strong) NSString * __nonnull icon;

在NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END之间,定义的所有对象属性和方法默认都是nonnull

null_resettable作用: get:不能返回为空, set可以为空

// 书写方式:
@property (nonatomic, strong, null_resettable) NSString *name;
// 注意;如果使用null_resettable,必须 重写get方法或者set方法,处理传递的值为空的情况

_Null_unspecified:不确定是否为空

书写方式只有这种
方式一
@property (nonatomic, strong) NSString *_Null_unspecified name;
方式二
@property (nonatomic, strong) NSString *__null_unspecified name;

__kindof:表示当前类或者它子类

__kindof书写格式:

放在类型前面,表示修饰这个类型(__kindof MyCustomClass *)

__kindof :在调用的时候,很清楚的知道返回类型 使用__kindof 修饰的类名既可以表示当前类,也可以表示当前类的子类

以上所述是小编给大家介绍的iOS 泛型中nullable、null resettable、null kindof 用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • iOS如何为圆角添加阴影效果示例代码

    iOS如何为圆角添加阴影效果示例代码

    最近一个项目中需要用到投影的效果,还要是圆角,通过查找相关的资料终于解决了,所以觉着有必要分享出来,下面这篇文章主要给大家介绍了关于iOS如何为圆角添加阴影效果的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • iOS购物分类模块的实现方案

    iOS购物分类模块的实现方案

    这篇文章主要为大家详细介绍了iOS购物分类模块的实现方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • IOS textField限制字节长度

    IOS textField限制字节长度

    这篇文章主要介绍了IOS textField限制字节长度的相关资料,需要的朋友可以参考下
    2016-02-02
  • iOS安全防护系列之重签名防护与sysctl反调试详解

    iOS安全防护系列之重签名防护与sysctl反调试详解

    这篇文章主要给大家介绍了关于iOS安全防护系列之重签名防护与sysctl反调试的相关资料,文中通过示例代码以及图文介绍的非常详细,对各位iOS开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • iOS系统缓存方面开发的相关基础

    iOS系统缓存方面开发的相关基础

    这篇文章主要介绍了iOS系统缓存方面开发的相关基础,示例代码基于传统的Objective-C,需要的朋友可以参考下
    2015-10-10
  • iOS开发中常用的各种动画、页面切面效果

    iOS开发中常用的各种动画、页面切面效果

    这篇文章主要介绍了iOS开发中常用的各种动画、页面切面效果 的相关资料,需要的朋友可以参考下
    2016-04-04
  • iOS实现手势解锁操作

    iOS实现手势解锁操作

    这篇文章主要为大家详细介绍了iOS实现手势解锁操作功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • IOS添加自定义字体实例详解

    IOS添加自定义字体实例详解

    这篇文章主要介绍了IOS添加自定义字体实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • iOS UITextView 实现类似微博的话题、提及用户效果

    iOS UITextView 实现类似微博的话题、提及用户效果

    这篇文章主要介绍了iOS UITextView 实现类似微博的话题、提及功能,基本思路是使用正则匹配出成对的#,再利用UITextView的富文本实现高亮效果,需要的朋友可以参考下
    2022-06-06
  • iOS的UI开发中UITabBarControlle的基本使用教程

    iOS的UI开发中UITabBarControlle的基本使用教程

    这篇文章主要介绍了iOS的UI开发中UITabBarControlle的基本使用教程,代码基于传统的Objective-C,需要的朋友可以参考下
    2015-12-12

最新评论