nil、Nil、NULL、NSNull的区别

NIL、NIL、NULL和NSNULL区别 前言记得曾经有不少朋友问过笔者,在Objective-C中nil和Nil以及NULL的区别。最重要的是,在面试中还有不少朋友常会被问到。记得当年刚找工作的时候,笔者就被面试官问到过,现在笔者在这里统一详细说明。NULL对于学习过C/C++语言的朋友,对NULL一定很熟悉吧?这就是在C/C++中的空指针。在C语言中,NULL是无类型的,只是一个宏,它代表空。我们不研究C++中的NULL,因为在C++1 阅读详情

nil、Nil、NULL、NSNull的区别

nil:

解释:nil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象。(指向一个对象的空指针)
举例:NSURL *url = nil;

Nil:

Nil 是 ObjC 类类型的书面空值,对应 Class 类型对象。(指向类的空指针)
举例:Class class = Nil;

NULL:

解释:指向其他类型(如:基本类型、C类型)的空指针
举例:

int *a = NULL;
char *b = NULL;
struct TreeNode *rootNode = NULL;

NSNull

解释:通常表示集合中的空值,NSNull 是一个代表空值的类,是一个 ObjC 对象。实际上它只有一个单例方法:+[NSNull null],一般用于表示集合中值为空的对象。
举例:

因为 nil 被用来用为集合结束的标志,所以 nil 不能存储在 Foundation 集合里。
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", nil];
错误的使用
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
  [dict setObject:nil forKey:@"someKey"];
正确的使用  
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
  [dict setObject:[NSNull null] forKey:@"someKey"];
NSNull与nil的区别 编程 在编程中,NSNull和nil是两个常见的特殊值,用于表示对象的空缺或缺失。本文将详细介绍NSNull和nil之间的区别,并提供相应的源代码示例。在上面的代码中,我们创建了一个包含三个元素的NSMutableArray。正确地使用NSNull和nil可以提高代码的可读性和可维护性,确保在处理空值或缺失对象时不会出现错误。根据具体的使用场景和需求,选择合适的空值表示方式,有助于编写高质量的代码。在上面的代码中,我们声明了一个NSString指针变量text,并将其初始化为nil。 阅读详情

相关推荐

避开这些坑!RK3588安卓系统内置输入法的正确姿势(含.mk文件修改指南)

本文详细解析了在RK3588安卓系统定制中预置第三方输入法的完整流程与关键避坑指南。重点涵盖APK签名、Android.mk文件编写、系统默认输入法配置(使用adb ime list命令获取服务名)以及SeLinux策略适配等核心步骤,并指出RK3566/RK3568等兄弟平台的通用性与差异点,帮助开发者实现稳定、深度的系统集成。

tgb34567890的博客 437

nil/Nil/NULL/NSNull的区别

nil/Nil/NULL/NSNull的区别 作者:wangzz 原文地址:http://blog.youkuaiyun.com/wzzvictory/article/details/18413519 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢! 平时开发过程中经常遇到这几个表示空的关键字:nil、Nil、NULL,一向搞不清楚,作为一个有两年开发经验的程序员,连那么基础的东西都不知道未免太丢人了。 首先要说明的是,nil、Nil、NULL三个关键字和

王中周的个人博客 1万+

Halcon-AOI外观缺陷检测系列

Halcon-AOI外观缺陷检测系列

Jumy_S的博客 1667

Go中error类型的nil值和nil

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34311757的博客 381

避坑指南:OpenWRT改AP模式必做的5个关键设置(DHCP/防火墙/WAN口处理)

本文详细解析了将OpenWRT设备从路由模式切换为AP模式时,必须完成的五个关键设置步骤。核心在于理解AP模式本质是带无线的智能交换机,需彻底关闭DHCP服务、调整防火墙策略、正确桥接所有物理接口(包括WAN口处理),并集成无线网络,以确保设备能透明接入主路由网络,避免出现设备隔离或无法互访等常见问题。

t1u2v的博客 734

【人工智能】Warp 终端完整汉化方案(2026最新)

截至2026年5月,,仅完成了中文、日文、韩文等东亚语言的字符渲染支持,设置面板中无官方语言切换选项,相关中文UI功能需求仍在官方GitHub开源仓库的需求迭代队列中。

奶爸的编程之路,也就一周冷个三天 3106

go语言nil

在Go语言中,如果你声明了一个变量但是没有对它进行赋值操作,那么这个变量就会有一个类型的默认零值。这是每种类型对应的零值: bool -> false numbers -> 0 string -> "" pointers -> nil slices -> nil maps -> nil channels -> nil functions -> nil interfaces -> nil 什么是nil nil是一个预先声明的标识符

m0_51992387的博客 723

猿创征文|Qt 文件和目录应用讲解【QCoreApplication】【QFile、QFileInfo】【QTemporaryDir和QTemporaryFile】【QDir】【QFileSyste】

Qt 文件和目录精准讲解【QCoreApplication】【QFile、QFileInfo】【QTemporaryDir和QTemporaryFile】【QDir】【QFileSyste】【QFileDialog】 第一章 QCoreApplication类 第一节 QCoreApplication常用函数方法 第二节 QCoreApplication举例 第二章 QFile类 第一节 静态函数方法 第二节 成员函数方法 第三章 QFileInfo类 第一节 常用函数方法 第四章 QDir类

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 942

nil/Nil/NULL/NSNull的来历

学过C的同学都知道,C是用0来表示不存在的原始值。而NULL作为空指针,在指针环境中也相当于0值。其实NULL和0的值都是一样的。但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值。

CoderKo1o 547

【华为OD机试真题】7、字符串筛选排序 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母(k>=1) 输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0) k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引 如果有重复字母则输出字母的最小位置索引

KJ.JK 2267

ABAP Cloud:面向云时代的 ABAP 开发范式与实践指南

摘要: 本文系统讲解SAP ABAP Cloud开发模型,涵盖其架构、工具链、规范及实践。ABAP Cloud作为统一开发模型,支持在SAP BTP和S/4HANA上构建云就绪应用,遵循clean core原则,通过RAP(RESTful应用编程模型)实现低耦合扩展。文章详细解析其核心构成(RAP、稳定API、clean core约束)、工具链(ADT、软件物流)及两种典型扩展场景(on-stack与side-by-side),并附可运行RAP示例代码(如销售笔记应用)。重点强调通过规范开发确保系统可升级性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 402

Objective-c nil, Nil, NULL和NSNull的区别

在OC中可能经常会遇到 nil,Nil,NULL和NSNull,下面分析一下之间的区别: Symbol Value Meaning NULL (void *)0 literal null value for C pointers nil (id)0 literal null value for Objective-C objec

小邓笔记 1万+

UG\NX二次开发 获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态

获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态。

王牌飞行员_里海的博客 1981

关于nil和 null和NSNull的区别及相关问题

关于nil和 null和NSNull的区别及相关问题 1、nil和null从字面意思来理解比较简单,nil是一个对象,而NULL是一个值,我的理解为nil是将对象设置为空,而null是将基本类型设置为空的,个人感觉有点像属性当中,基本类型分配为assign NSString类型一般分配copy,而对象一般用retain。而且我们对于nil调用方法,不会产生crash或者抛出异常。 看一

优快云_Liuzongyi的博客 457

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

nil NULL Nil NSNull 区别

iOS中nil 、NULL、 Nil 、NULL的区别如下: 1、nil >Defines the id of a null instance. 定义一个实例为空, 且指向一个OC对象的空指针.  >示例代码: [代码]objc代码: ? 1 2 3 4 "3" color="#0000f0">NSString *someStr

小微笑 498

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

nil,NULL,Nil,NSNull的区别

1.nil   >Defines the id of a null instance.   定义一个实例为空, 指向oc中对象的空指针.   >示例代码:    NSString *someString = nil;    NSURL *someURL = nil;    id someObject = nil;    if (anotherObject == nil) // do

Frimish的博客 444

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

nil-Nil-NULL-NSNull区别

nil: 一般赋值给空对象 Nil: Objective-C类的字面零值 NULL: 一般赋值给nil之外的其他空值。如SEL等; NSNull: NSNull只有一个方法:+ (NSNull *) null;   [NSNull null]用来在NSArray和NSDictionary中加入非nil(表示列表结束)的空值. 当向nil发送消息时,返回NO,不会有异常,程序将继续执行下去;

zhz459880251的博客 516

nil、Nil、NULL与NSNull的区别

1、nil: 指向一个对象的指针为空,例如: NSString *name = nil; 2、Nil :指向一个类的指针为空,例如: Class aClass = Nil; 3、NULL:指向C类型的指针为空,例如: int *pInt = NULL; char *chChar = NULL; 4、NSNull:在Objective-C中是一个类,只是名字中有个Null,NSNull有

宁静致远 1075

nil, Nil, NULL, NSNull的区别

nil:指向一个对象的空指针,对Objective-C 的id对象附控制 nil在指向一个对象的指针为空,定义如下 #ifndef nil # if __has_feature(cxx_nullptr) # define nil nullptr # else # define nil __DARWIN_NULL # endif #endif 在Objective-C中用于id类型的对象 NSString *str = nil; NSURL *url = nil; id object = nil

More reading and learning to become excellent 223

OC中的空值nil\Nil\NULL\NSNull的区别

nil、Nill、NULL、[NSNull null]都是用来表示“空”或“零”。只不过表示不同种类的的“空”或“零”。也许和0与0.0一样,都表示“零”,但是一个对应整型,一个对应浮点型。 一、nil 定义 // objc.h #ifndef nil # if __has_feature(cxx_nullptr) // 判断C++中是否有nullptr特性,一般iOS中无用 # def...

学习笔记 1284

Objective-c 中 nil, Nil, NULL和NSNull的区别

nil: A null pointer to an Objective-C object. ( #define nil ((id)0)  ) Nil: A null pointer to an Objective-C class. NULL: A null pointer to anything else,  is for C-style memory pointers. ( #d

我爱大馅饼 737

nil Nil NULL及NSNull 之间的区别

本文参考自:http://blog.youkuaiyun.com/xdrt81y/article/details/8981133 一、简介 初学iOS,里面的nil,Nil,NULL及NSNull 把我搞得有点晕。今天把他们归纳总结一下. 1、NULL NULL其实就是C\C++的用法,用来表示一个对象指针不指向任何对象,其值为0,当在对象指针为NULL的对象上调用方法或访问成员变量时,会

Robin Hu的专栏 4325

iOS下nil 、NULL、 Nil 、NSNull的区别

1.nil,定义一个空的实例,指向OC中对象的空指针. 示例代码: NSString *someString = nil; NSURL *someURL = nil; id someObject = nil; if (anotherObject == nil) // do something 用法讲解:  当对某个对象release 的同时最好把他们赋值...

ahh800200的博客 141
上一篇: "To use this device with Xcode, unlock the device and choose "Trust".
下一篇: 优雅的使用MacBook(一些小技巧,你不会知道的)
args_
博客等级 码龄11年 13粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值