前言
偶然看到了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进行投诉反馈,一经查实,立即删除!