nil、Nil、NULL、NSNull
来源:互联网 发布:mysql类似nvl的函数 编辑:程序博客网 时间:2024/04/20 15:01
最近新浪面试问了这么个问题:nil、Nil、NULL、NSNull的区别,当时没有回答出来,平时用的时候也没有特别在意这个问题。现在找好资料总结一下。
nil
nil是ObjC对象的字面空值,对应id类型的对象或者使用@interface声明的ObjC对象
例如:
NSString *str = nil;NSArray *array = nil;id objc = nil;if(self == nil){...}
Nil
Nil是Objc类类型的书面空值,对应Class类型对象。
例如:
Class someClass = Nil;Class antherClass = [NSString class];
NULL
NULL是任意C指针空值
例如:
int *pointerToInt = NULL;char *pointerToChar = 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"];
NIL或NSNil
这两个不存在。
0 0
- nil Nil NULL NSNull
- NSNULL nil NULL Nil
- nil Nil NULL NSNull
- nil / Nil / NULL / NSNull
- nil / Nil / NULL / NSNull
- nil / Nil / NULL / NSNull
- nil Nil NULL NSNull
- nil/Nil/NULL/NSNull
- nil/Nil/NULL/NSNull
- nil/Nil/NULL/NSNull
- nil/Nil/NULL/NSNull
- nil / Nil / NULL / NSNull
- nil、Nil、NULL、NSNull
- nil / Nil / NULL / NSNull
- nil / Nil / NULL / NSNull
- nil、Nil、NULL、NSNull
- nil / Nil / NULL / NSNull
- nil / Nil / NULL / NSNull
- c++中使用vector可能会产生的内存管理问题
- Swift开发笔记4.协议Protocal
- 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: TCP 提供程序, error: 0 - 指定的网络名不再可用
- 如何获取StatusBar的高度(Android平台)
- 选择类排序:选择排序,堆排序
- nil、Nil、NULL、NSNull
- 编译ffmpeg遇到的问题
- 内核抢占
- Oracle 执行计划(Explain Plan) 说明
- zabbix资料
- 2.寄宿图---iOS-Core-Animation-Advanced-Techniques
- 数据库编程--translate的使用
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- Oracle执行计划详解