nil,Nil,null,NSNULL的区别与用法
2015-11-26 10:43
330 查看
1、nil:一般赋值给空对象;
2、NULL:一般赋值给nil之外的其他空值。如SEL等;
[NSApp beginSheet:sheet
modalForWindow:mainWindow
modalDelegate:nil //pointing to an object
didEndSelector:NULL //pointing to a non object/class
contextInfo:NULL]; //pointing to a non object/class
3、NSNULL:NSNull只有一个方法:+ (NSNull *) null;
[NSNull null]用来在NSArray和NSDictionary中加入非nil(表示列表结束)的空值. [NSNull null]是一个对象,他用在不能使用nil的场合。
4、当向nil发送消息时,返回NO,不会有异常,程序将继续执行下去;
而向NSNull的对象发送消息时会收到异常。
因为在NSArray和NSDictionary中nil中有特殊的含义(表示列表结束),所以不能在集合中放入nil值。如要确实需要存储一个表示“什么都没有”的值,可以使用NSNull类。NSNull只有一个方法:
+ (NSNull *) null;
2、NULL:一般赋值给nil之外的其他空值。如SEL等;
[NSApp beginSheet:sheet
modalForWindow:mainWindow
modalDelegate:nil //pointing to an object
didEndSelector:NULL //pointing to a non object/class
contextInfo:NULL]; //pointing to a non object/class
3、NSNULL:NSNull只有一个方法:+ (NSNull *) null;
[NSNull null]用来在NSArray和NSDictionary中加入非nil(表示列表结束)的空值. [NSNull null]是一个对象,他用在不能使用nil的场合。
4、当向nil发送消息时,返回NO,不会有异常,程序将继续执行下去;
而向NSNull的对象发送消息时会收到异常。
因为在NSArray和NSDictionary中nil中有特殊的含义(表示列表结束),所以不能在集合中放入nil值。如要确实需要存储一个表示“什么都没有”的值,可以使用NSNull类。NSNull只有一个方法:
+ (NSNull *) null;
总结来说:nil是一个对象指针为空,Nil是一个类指针为空,NULL是基本数据类型为空。
这些可以理解为nil,Nil, NULL的区别吧。
相关文章推荐
- python os模块常用命令
- 字符串匹配的三种算法
- Swift:表格视图单元格单选(一)
- docker容器的网络信息查看
- 多数据源之间不使用分布式事务实现异步最终一致性
- Java音频播放
- 今天看到一篇文章,收藏了很多大牛的博客
- 三种主流的Web服务实现方案(REST+SOAP+XML-RPC)简述及比较
- NoSQL架构实践(一)——以NoSQL为辅
- 13、手把手教你Extjs5(十三)模块字段和Grid列的定义[1]
- 八皇后问题
- centos 删除旧内核
- Android中关于Manifest的权限注册问题
- Codeforces 459B Pashmak and Flowers
- 火狐已不再需要谷歌资金支持
- 拨打电话tel: 跳转到邮件mailto:(html)
- JIT及时编译、解释的概念
- CUDA框架搭建操作
- UE 查找字符串显示列表
- 解决"应用程序无法启动,因为应用程序的并行配置不正确"的问题(VS2008 + qt)