nil 与 null 的区别

nil 与 null 的区别

nil 连对象都没有

null 有对象,但对象内容为空

以NSString 类为例

NSString *str1 = nil;    //连字符串对象都没有  控制台输出 (null)
NSString *str2 = null;    //有字符串对象,只是字符串里没有内容,即指向一个空对象。   控制台输出 (null)
// NSString 这个类比较特别,因为用的非常普遍,所以不用 alloc 来创建,可以直接以下面这种方式来创建
NSString *str3 = @"";      //控制台输出

现在看控制台的输出

 

 

时间: 2024-10-12 22:10:34

nil 与 null 的区别的相关文章

iOS中类和对象,还有nil,Nil,NULL的区别

一.类和对象 类与对象的概念: 1.类是对同一类事物的高度抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法) 2.对象是类的一个实例,是一个具体的事物 3.类其实就是一种数据类型,它的变量就是对象 4.类与类之间的关系--继承关系 eg:学生与小学生,小学生也是学生,所以学生是小学生的父类,小学生是学生的子类 OC与面向对象: 1.对象是oc程序的核心.“万事万物皆对象”是程序中的核心思想 2.类是用来创建同一类型的对象的模板,在一个类中定义了该类对象所具有的成员变量及方法

iOS-nil,Nil,NULL的区别

一.简述 1.nil用来给对象赋值(Objective-C中的任何对象都属于id类型) 2.NULL则给任何指针赋值,NULL和nil不能互换 3.nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例) 4.NSNull则用于集合操作 5.虽然它们表示的都是空值,但使用的场合完全不同. 示例如下: id object = nil; if (object) { NSLog(@"判断对象不为空"); } if (object == nil) { N

Nil,nil,NSNULL,NULL的区别

一.nil 我们给对象赋值时一般会使用object = nil,表示我想把这个对象释放掉: 或者对象由于某种原因,经过多次release,于是对象引用计数器为0了,系统将这块内存释放掉,这个时候这个对象为nil,我称它为"空对象".(注意:我这里强调的是"空对象",下面我会拿它和"值为空的对象"作对比!!!) 所以对于这种空对象,所有关于retain的操作都会引起程序崩溃,例如字典添加键值或数组添加新原素等. 二.NSNull NSNull和ni

nil和null的区别

NULL? ? ?? ? 只能作为指针变量的值.如果1个指针变量的值是NULL值代表.代表这个指针不指向内存中的任何1块空间 ? ?? ? NULL其实等价于0? NULL其实是1个宏.就是0 ? ? ? 2. nil ? ?? ? 只能作为指针变量的值.代表这个指针变量不指向内存中的任何空间.? ?? ? nil其实也等价于0也是1个宏.就是0. ? ?? ? 所以, NULL和nil其实是一样的. ? ? ? 3. 使用建议. ?? ? ?? ? 虽然使用NULL的地方可以是nil使用 ni

类和对象 nil/Nil/NULL的区别

iOS-----类和对象,nil/Nil/NULL的区别 iOS中类和对象,nil/Nil/NULL的区别 类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. 类与对象是抽象与具体的关系. 类其实就是一种数据类型,它的变量就是对象. 类与类之间的关系——继承关系 A是B 如果这句话说的通,在设计程序的时候就可以看成是继承关系. 例如:学生与小学生 小学生也是学生,所以学生是小学生的父类,小学生是学

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

1.nil和null从字面意思来理解比较简单,nil是一个对象,而NULL是一个值,我的理解为nil是将对象设置为空,而null是将基本类型设置为空的,个人感觉有点像属性当中,基本类型分配为assign NSString类型一般分配copy,而对象一般用retain.而且我们对于nil调用方法,不会产生crash或者抛出异常. 看一段 nil -> Null-pointer to objective- c object NIL -> Null-pointer to objective- c c

<转>ios nil、NULL和NSNull 的使用

nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例), 而NSNull则用于集合操作,虽然它们表示的都是空值,但使用的场合完全不同. 示例如下: id object = nil; // 判断对象不为空 if (object) { } // 判断对象为空 if (object == nil) { } // 数组初始化,空值结束 N

ios开发理解nil,Nil, NULL

nil是一个对象指针为空,Nil是一个类指针为空,NULL是基本数据类型为空.这些可以理解为nil,Nil, NULL的区别吧. iOS剪切板 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string = @"要赋给剪切板的字符串"; 1 ID 可以传递任何消息给id,但如果该id不支持这个消息就会返回一个运行时异常,通常就是:“unrecognisedselector sent to

ios nil、NULL和NSNull 的使用

nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例), 而NSNull则用于集合操作,虽然它们表示的都是空值,但使用的场合完全不同. 示例如下: id object = nil; // 判断对象不为空 if (object) { } // 判断对象为空 if (object == nil) { } // 数组初始化,空值结束 N