iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针

ops/2024/12/31 23:27:06/

iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针-CSDN博客

类型含义使用场景示例
nil表示一个指向 Objective - C 对象的空指针。在 Objective - C 和 Swift(与 Objective - C 交互时)中用于表示对象不存在。当一个对象变量没有指向任何有效的对象实例时使用。例如,一个UIViewController变量在没有初始化或者已经被释放后可以赋值为nilObjective - C:
UIViewController *viewController = nil;
Swift(与 Objective - C 交互):
let viewController: UIViewController? = nil
Nil用于表示指向 Objective - C 类的空指针。它和nil的区别在于nil是用于对象实例,而Nil是用于类本身。在 Objective - C 中,当你需要一个类指针变量但没有具体指向某个类时使用。不过在实际开发中这种情况比较少见。Objective - C:
Class someClass = Nil;
NULL在 C 和 C++ 中表示空指针,在 iOS 开发中主要用于 C 语言风格的指针。当一个指针不指向任何有效的内存地址时使用。一般用于 C 语言函数返回指针类型,并且没有有效返回值的情况。在 iOS 开发中,如果涉及到 C 语言库或者对底层内存操作(如 Core Foundation 中的部分函数)会用到。C:
void *pointer = NULL;
在 iOS 开发中(Core Foundation 示例):
CFStringRef string = NULL;
NSNull是 Foundation 框架中的一个单例类,用于表示集合(如NSArrayNSDictionary)中的空值。因为nil不能直接放在集合中作为一个元素来表示 “这里有一个空值”,所以使用NSNull当需要在集合类(如数组、字典)中表示一个有效的占位符为空的值时使用。例如,一个NSDictionary的某个键值可能是NSNull,表示这个键对应的是一个空值而不是键不存在。Objective - C:
NSArray *array = @[ @"value", [NSNull null] ];
Swift:
let array: [Any] = ["value", NSNull()]

http://www.ppmy.cn/ops/146006.html

相关文章

重启ubuntu服务器,如何让springboot服务自动运行

文章目录 1. 使用 systemd 服务步骤: 2. 使用 cron 的 reboot 任务步骤: 3. 使用 init.d 脚本(适用于较旧版本)步骤: 推荐方案 为了确保在重启Ubuntu服务器后,让springboot的服务test.jar象 nohup java -ja…

unity3d 重要框架,如 ugui、ngui、timeline、behavior designer、urp 等

Unity3D 提供了许多重要的框架和工具集,帮助开发者快速实现游戏功能。这些框架各有特点,适用于不同的场景。以下是对常见的 Unity 框架(UGUI、NGUI、Timeline、Behavior Designer、URP)的详细分析,包括涉及的知识点和代…

嵌入式硬件面试题

1、请问什么是通孔、盲孔和埋孔?孔径多大可以做机械孔,孔径多小必须做激光孔?请问激光微型孔可以直接打在元件焊盘上吗,为什么? 通孔是贯穿整个PCB的过孔,盲孔是从PCB表层连接到内层的过孔,埋孔…

渗透测试面试问题

思路流程 信息收集 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)网站指纹识别(包括,cms,cdn,证书等),dns记录whois信息&…

【信息系统项目管理师】高分论文:论信息系统项目的资源管理(阳光信访工作平台)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文一、全面分析,规划项目资源管理二、活动的资源估算三、科学合理,获取资源四、注重激励,建设团队五、协调配合,管理好项目团队六、控制资源论文 随着信息化时代的发展,新形势下的信访工作作为化解社会…

支持最新 mysql9的workbench8.0.39 中文汉化教程来了

之前在 B 站上发布了 mysql8 workbench 汉化教程,一年多来帮助很多初学者解决了不熟悉英文的烦恼。 汉化视频可以访问: 2024最新版mysql8.0.39中文版mysql workbench汉化 中文升级 旧版汉化报错解决_哔哩哔哩_bilibili MySql Workbench汉化_哔哩哔哩_…

java常见类库

StringBuffer类 String和StringBuffer的区别 String 不可变性:String 类是不可变的,这意味着一旦创建了一个 String 对象,其值就不能改变。每次对 String 进行修改(如连接、替换等操作)都会产生新的 String 对象&…

2、C#基于.net framework的应用开发实战编程 - 设计(二、三) - 编程手把手系列文章...

二、设计; 二.三、构建数据库; 此例子使用的是SQLite数据库,所以数据库工具用的SQLiteStudio x64,这个是SQLite专用的数据库设计管理工具,其它的数据库管理工具比如DBeaver的使用请见实战工具系列文章。 1、…