文档章节

Nil,nil,NSNULL,NULL的区别

sirier
 sirier
发布于 2014/09/28 14:39
字数 453
阅读 123
收藏 5
点赞 0
评论 0

一、nil

我们给对象赋值时一般会使用object = nil,表示我想把这个对象释放掉;

或者对象由于某种原因,经过多次release,于是对象引用计数器为0了,系统将这块内存释放掉,这个时候这个对象为nil,我称它为“空对象”。(注意:我这里强调的是“空对象”,下面我会拿它和“值为空的对象”作对比!!!)

所以对于这种空对象,所有关于retain的操作都会引起程序崩溃,例如字典添加键值或数组添加新原素等。

二、NSNull

NSNull和nil的区别在于,nil是一个空对象,已经完全从内存中消失了,而如果我们想表达“我们需要有这样一个容器,但这个容器里什么也没有”的观念时,我们就用到NSNull,我称它为“值为空的对象”。如果你查阅开发文档你会发现NSNull这个类是继承NSObject,并且只有一个“+ (NSNull *) null;”类方法。这就说明NSNull对象拥有一个有效的内存地址,所以在程序中对它的任何引用都是不会导致程序崩溃的。

三、Nil

nil和Nil在使用上是没有严格限定的,也就是说凡是使用nil的地方都可以用Nil来代替,反之亦然。只不过从编程人员的规约中我们约定俗成地将nil表示一个空对象,Nil表示一个空类。参考代码如下:

nil、Nil、NULL和NSNull的理解

四、NULL

我们知道Object-C来源于C、支持于C,当然也有别于C。而NULL就是典型C语言的语法,它表示一个空指针,参考代码如下:

int *ponit = NULL;  


© 著作权归作者所有

共有 人打赏支持
sirier
粉丝 0
博文 19
码字总数 1655
作品 0
海淀
程序员
iOS nil、Nil、NULL和NSNull 的使用

nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例),而N...

江山风雨
07/04
0
0
nil,NULL,NSNull的区别

nil,NULL,NSNull的区别 主要就以下几点: 1、nil:一般赋值给空对象; 2、NULL:一般赋值给nil之外的其他空值。如SEL等;   举个栗子(好重啊~):     [NSApp beginSheet:sheet    ...

Daniel_s
2015/12/25
25
0
ios nil、NULL和NSNull 的使用

nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例),而N...

Align
2016/01/04
13
0
iOS中的(null) nil 问题

前段时间开发过程中,界面上莫名其妙的有些地方显示(null)有些地方显示 <null>,修改起来很蛋疼,经过查找资料来总结一下其中的微妙,免得以后再在这个东西上花无谓的时间去修改。 首先记录...

Marginx
2015/10/06
1K
0
iOS中nil Nil NULL 区别

一、nil 当一个对象置为nil时,这个对象的内存地址就会被系统收回。置空之后是不能进行retain,copy等跟引用计数有关的任何操作的。 二、Nil nil完全等同于Nil,只不过由于编程习惯,人们一般...

RainOrz
05/07
0
0
iOS 开发 nil/Nil/NULL/NSNull的区别

C用0来作为不存在的原始值,而NULL作为指针(这在指针环境中相当于0)。 Objective-C在C的表达不存在的基础上增加了nil。nil是一个指向不存在的对象指针。虽然它在语义上与NULL不同,但它们在技...

神补刀
2015/11/12
0
0
关于nil和 null和NSNull的相关问题

关于nil和 null和NSNull的区别及相关问题 1、nil和null从字面意思来理解比较简单,nil是一个对象,而NULL是一个值,我的理解为nil是将对象设置为空,而null是将基本类型设置为空的,个人感觉...

sea_god
2014/07/13
0
0
nil、Nil、NULL的区别

nil、Nil、NULL的区别 nil :指向oc中对象的空指针, 针对对象 。 Nil :指向oc中类的空指针, 针对类 。 NULL :指向其他类型的空指针,如一个c类型的内存指针, 基本数据类型为空,基本类型...

法斗斗
2016/02/18
22
0
Objective-C 中 NULL、nil、Nil、NSNull

NULL NULL 定义在 usr/include/sys/types/null.h 文件里: #ifndef NULL #define NULL DARWIN_NULL #endif / NULL / 其中 DARWINNULL 的定义在 usr/include/sys/_types.h 文件里,如下: #i......

tb_engineer
2016/12/20
1
0
​Object-C nil NULL 和 NSNull

nil 用来给对象赋值 NULL 则给任何指针赋值 //NULL 和 nil 不能互换,nil 用于类指针赋值 NSNull 则用于集合操作 一般情况下最好使用用 nil (空对象值,有意义) [ nil 任意方法],不会导致崩溃...

Jack088
2015/09/18
72
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统

expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 expect脚本指定host和要同步的文件 更改权限,执行脚本 构建文件分发系统 需求背...

Zhouliang6
39分钟前
1
0
Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
49分钟前
3
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
54分钟前
1
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
572
6
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
8
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
1
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
17
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
2
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部