iOS 中nil,Nil,NULL,NSNull的区别
2017-05-22 14:54
671 查看
类与对象的概念
类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法)。
对象是类的一个实例,是一个具体的事物。
类与对象是抽象与具体的关系。
类其实就是一种数据类型,它的变量就是对象。
nil、Nil、NULL、NSNull的区别
nil:指向一个对象的空指针
Nil:指向一个类的空指针
NULL:指向其他类型(如:基本类型、C类型)的空指针
NSNull:通常表示集合中的空值
举例:
NSURL *url = nil;
Class class = Nil;
int *pointerInt = NULL;
NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];
为什么上面的array里面的空对象不直接用nil?
如果用nil,就会变成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil, [[NSObject alloc] init], [[NSObject alloc] init], nil];,那么数组到第二个位置就会结束。打印[array count]的话会显示1而不是4
所以[NSNull null]通常可以作为一个数组的占位符,从而是数组的count计算准确
类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法)。
对象是类的一个实例,是一个具体的事物。
类与对象是抽象与具体的关系。
类其实就是一种数据类型,它的变量就是对象。
nil、Nil、NULL、NSNull的区别
nil:指向一个对象的空指针
Nil:指向一个类的空指针
NULL:指向其他类型(如:基本类型、C类型)的空指针
NSNull:通常表示集合中的空值
举例:
NSURL *url = nil;
Class class = Nil;
int *pointerInt = NULL;
NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];
为什么上面的array里面的空对象不直接用nil?
如果用nil,就会变成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil, [[NSObject alloc] init], [[NSObject alloc] init], nil];,那么数组到第二个位置就会结束。打印[array count]的话会显示1而不是4
所以[NSNull null]通常可以作为一个数组的占位符,从而是数组的count计算准确
相关文章推荐
- iOS中nil、Nil、NULL、NSNull 区别
- iOS nil、Nil、NULL、NSNull的区别
- ios nil、NULL和NSNull 的区别
- iOS JSON返回的数据有NSNull导致程序崩溃及ios nil、NULL和NSNull的区别
- iOS中nil ,NULL,Nil ,NSNull的区别
- iOS中nil 、NULL、 Nil 、NSNull的区别
- iOS中nil 、NULL、 Nil 、NSNull的区别
- iOS_nil、Nil、NULL、NSNull的区别
- 『IOS』nil,NULL,NSNull的区别
- ios 中NULL,nil, Nil, NSNull的区别
- iOS之nil、Nil、NULL、NSNull的区别
- iOS --- nil、Nil、NULL、NSNull的区别
- iOS中nil 、NULL、 Nil 、NSNull的区别详谈
- iOS学习笔记8—nil,Nil,null,NSNULL的区别与用法
- iOS nil,Nil,NULL,NSNULL的区别
- iOS_nil、Nil、NULL、NSNull的区别
- iOS下nil 、NULL、 Nil 、NSNull的区别你造吗
- iOS中nil 、NULL、 Nil 、NSNull的区别
- iOS开发 -- Objective-c 中 nil, Nil, NULL和NSNull的区别
- IOS中nil、Null、Nil和NSNull的区别