iOS开发:nullable 和 nonnull 是什么意思

前言:nullable 和 nonnull 是为了迎合swift出的新特性,用于修饰属性、或者方法的参数,或者方法的返回值。

  • 好处:
    1.迎合swift
    2.提高我们开发人员开发规范,减少程序员之间不必要的交流

nullable

/*
  nullable作用:表示可以为空
  nullable书写规范:
*/
 // 方式一:
 @property (nonatomic, strong, nullable) NSString *name;
 // 方式二:
 @property (nonatomic, strong) NSString *_Nullable name;
 // 方式三:
 @property (nonatomic, strong) NSString *__nullable name;
  • 怎么用?
    1.申明这个属性调用set方法的时候可以给空值 nil 。如下
[self setName:(_Nullable NSString *)];//可以看到这里是可以传空值的(nil)
[self setName:nil];//完整写出来是这样的

nonnull

 nonnull作用:不能为空
/*
  nonnull: non:非 null:空
  nonnull作用:不能为空
  书写格式:
*/
// 方法一:
 @property (nonatomic, strong, nonnull) NSString *icon;
// 方法二:
 @property (nonatomic, strong) NSString * _Nonnull icon;
// 方法三:
 @property (nonatomic, strong) NSString * __nonnull icon;
  • 既然有为空的申明,也会有不为空的申明,用法和上面一样的
    1.申明这个属性调用set方法的时候不能传空(nil)值,如下
[self setName:(_Nonnull NSString *)];//打出来会看到这个类型
[seltf setName:nil];//这样写会警告
//正确写发法
[self setName:@"123"];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容