iOS开发中nil、Nil、NULL和[NSNull null]的区别
来源:互联网 发布:sql server 实训报告 编辑:程序博客网 时间:2024/05/29 04:10
先来打印一下这四个nil
从打印结果就能看出,前三个是一样的,就最后这个不太一样。
今天后台传给了我一个<null>我用了nil,Nil,NULL都不行,一个空指针把我给难倒了。
于是去网上找了半天才找到,竟然还有个[NSNull null]
下面我就根据众多网友的博客总结下这几个的区别:
一、nil
当一个对象置为nil时,这个对象的内存地址就会被系统收回。置空之后是不能进行retain,copy等跟引用计数有关的任何操作的。
二、Nil
nil完全等同于Nil,只不过由于编程习惯,人们一般把对象置空用nil,把类置空用Nil。
三、NULL
这个是从C语言继承来的,就是一个简单的空指针
四、[NSNull null]
这个才是重点:[NSNull null]和nil的区别在于,nil是一个空对象,已经完全从内存中消失了,而如果我们想表达“我们需要有这样一个容器,但这个容器里什么也没有”的观念时,我们就用到[NSNull null],它就是为“值为空的对象”。如果你查阅开发文档你会发现NSNull这个类是继承NSObject,并且只有一个“+ (NSNull *) null;”类方法。这就说明NSNull对象拥有一个有效的内存地址,所以在程序中对它的任何引用都是不会导致程序崩溃的。
2 0
- IOS中nil、Null、Nil和NSNull的区别
- iOS开发中nil、Nil、NULL和[NSNull null]的区别
- iOS中nil/Nil/NULL的区别以及[NSNull null]
- iOS之nil, Nil, NULL,null和NSNull的区别
- iOS中nil、Nil、NULL、NSNull 区别
- iOS nil, Nil, NSNull NULL的区别
- ios nil Nil Null NSNull的区别
- ios nil Nil Null NSNull的区别
- ios nil Nil Null NSNull的区别
- iOS nil Nil NULL NSNull的区别
- iOS --- nil、Nil、NULL、NSNull的区别
- iOS nil、Nil、NULL、NSNull的区别
- iOS开发 -- Objective-c 中 nil, Nil, NULL和NSNull的区别
- iOS 中 nil NULL, NSNULL的区别
- nil, Nil, NULL和NSNull的区别
- nil、Nil、NULL和NSNull的区别
- iOS中nil NULL Nil 和NSNull区别
- ios中null nil Nil NSNull的区别
- 15.Hello World 项目创建与项目配置文件介绍 - IntelliJ IDEA 使用教程
- Android开发使用的常见第三方框架汇总
- android-使用AsyncTask做下载进度条
- EF框架—Code-First
- windows程序消息处理流程
- iOS开发中nil、Nil、NULL和[NSNull null]的区别
- 直接选择排序
- 第九周-不定工资数
- 16.版本控制的使用 - IntelliJ IDEA 使用教程
- 关于javaWeb的Filter过滤器
- C语言中如何避免野指针
- python2 type()函数 isinstance()函数
- s3c2440使用中断方式读取按键终端
- 素数求和问题【nyoj22】