nonnull、nullable

作者: 林希品 | 来源:发表于2023-02-06 11:20 被阅读0次

    不常用的:nonnull(不能为空)、nullable(可以为空)、null_resettable(setter可为空, gette不可为空)

    一、nonnull 表示不能为空
    @property (nonnull, nonatomic, copy) NSString *name;//写法一
    @property (nonatomic, copy) NSString *__nonnull name;//写法二,小写时为两个下划线
    @property (nonatomic, strong) NSString *_Nonnull name;//写法三,大写时为一个下划线

    • (void)test{

      self.name = nil;//系统会有警告不能给这个属性赋nil

      // 这样子不提示
      NSString *string = nil;
      self.name = string;//这里系统不会识别到
      }

    二、nullable 表示可以为空
    @property (nullable, nonatomic, copy) NSString *name;//写法一
    @property (nonatomic, copy) NSString *__nullable name;//写法二,小写时为两个下划线
    @property (nonatomic, strong) NSString *_Nullable name;//写法三,大写时为一个下划线

    三、null_resettable setter可为空, gette不可为空
    setter方法是nullable(可以赋空值),getter方法是nonnull(取值不能为空)
    当看到由null_resettable修饰的属性时,就应该猜想这个属性的初始化采用了懒加载方式

    相关文章

      网友评论

        本文标题:nonnull、nullable

        本文链接:https://www.haomeiwen.com/subject/zgktkdtx.html