本文介绍: 偶然看到了NSNULL 简单了解他的兄弟nil Nil记录一下。

前言

偶然看到了NSNULL 简单了解他的兄弟nil Nil记录一下。

NSNULL Nil nil

iOS中,nil、Nil和NSNull表示空值”的概念,但它们在使用时有所不同

nil和Nil都表示指针可以用于指针类型变量对象类型变量、和Objective-C对象参数返回值中。nil和Nil本质上是一样的,只是nil是指向id类型的空指针,而Nil是指向Class类型的空指针

NSString *str1 = nil;
UIView *view1 = Nil;

NSMutableArray *dct = nil;
        [dct addObject:@"1"];

请添加图片描述

nil 和 Nil 区别

编程人员的规约中我们约定俗成地将nil表示一个空对象,Nil表示一个空类

NSNULL

NSNull是一个Objective-C类,用于表示一个空对象。它通常用于集合类型(如NSArray和NSDictionary)中存储一个空对象,因为这些集合类型不能存储nil值(在JSONMOdel的源码看到该对象,现在知道为什么用它了)
请添加图片描述
直接使用nil会警告⚠️

改为即可消除警告。

 NSMutableArray *dct;
//        [dct addObject:nil];
        [dct addObject:[NSNull null]];

总结NSNull和nil的区别在于,nil是一个空对象,已经完全从内存消失了,而如果想表达“我们需要有这样一个容器,但这个容器什么没有”的观念时,就要用到NSNull,它是“值为空的对象”。
nil和Nil表示空指针,而NSNull表示空对象。在实际使用中,需要根据具体情况选择使用哪种方式来表示“空值”。

原文地址:https://blog.csdn.net/weixin_61639290/article/details/130189484

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_38661.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注