iOS-nil、Nil、NULL和NSNull区别详细说明(去除数据请求返回的null)
来源:互联网 发布:linux tomcat调试模式 编辑:程序博客网 时间:2024/05/21 17:38
前言
我们先看nil和null的解释:nil n.无,零;零分
null adj.<术>零值的;等于零的;(协议) 无法律效力;失效的
nil和null都表示零和无的意思。
nil
定义了一个空的实例来指向OC对象的空指针,也就是一个空的OC对象;NSString *str = nil;
NSData *data = nil;
NSLog(@"%@",nil);
NSLog(@"%@",str);
NSLog(@"%@",data);
NSLog(@"%p",nil);
NSLog(@"%p",str);
NSLog(@"%p",data);
NSLog(@"%d",(data == nil));
控制台打印出来是(null)
Nil
Nil是一个空的类Class someClass = Nil;
Class anotherClass = [NSString class];
NULL<null>
NULL是C语言的空指针
int *pointerToInt = NULL;
char *pointerToChar = NULL;
struct TreeNode *rootNode = NULL;
NSLog(@"%@",pointerToInt);
NSLog(@"%s",pointerToChar);
NSLog(@"%@",rootNode);
NSLog(@"%d",pointerToInt==NULL);
NSLog(@"%d",pointerToInt==nil);
控制台打印出来是(null)
判断一个对象是不是NULL
if([nameStr isEqual:[NSNull null]])
iOS开发服务器返回(null) 与<null>的处理,我们在开发的过程中,很多人会遇到开发不规范的后台小伙伴,对为 赋 值的对象,直接返过来,我们这边接收以后就变成null,而且判断方法只能用[nameStr isEqual: [NSNull null]],有时候我们还要判断nil,所以非常麻烦,有没有能去除null的方法呢?答案是肯定有啦!我 们可以自己写一个类来遍历与替换,这样比较麻烦一些,还有一种方法就是使用AFNetworking提供的方法,方法 如下:AFJSONResponseSerializer *response = [AFJSONResponseSerializer serializer];
response.removesKeysWithNullValues = YES;//去除null值
manager.responseSerializer = response;
manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSNull
NSNull是一个类,代表空值的单利,只有一个单利方法[NSNull null],用于表示集合值为空的对象(oc中nil是不能 存放在集合中的,因为nil是集合结束的标志位)NSArray *arr = [NSArray arrayWithObjects:@"one",@"two",[NSNull null], nil];
for (NSString *str in arr) {
NSLog(@"%@",str);
}
2015-10-06 16:40:25.816 test[96177:5565855] one
2015-10-06 16:40:25.817 test[96177:5565855] two
2015-10-06 16:40:25.817 test[96177:5565855] <null>
总结
Symbol Value Meaning
NULL (void *)0 C指针的空值
nil (id)0 OC对象的空值
Nil (Class)0 OC类对象的空值
NSNull [NSNull null] 用于表示空值的单例
希望对你有所帮助,也欢迎大家补充!
- iOS-nil、Nil、NULL和NSNull区别详细说明(去除数据请求返回的null)
- iOS之nil, Nil, NULL,null和NSNull的区别
- iOS nil, Nil, NSNull NULL的区别
- ios nil Nil Null NSNull的区别
- ios nil Nil Null NSNull的区别
- ios nil Nil Null NSNull的区别
- iOS nil Nil NULL NSNull的区别
- iOS --- nil、Nil、NULL、NSNull的区别
- iOS nil、Nil、NULL、NSNull的区别
- nil, Nil, NULL和NSNull的区别
- nil、Nil、NULL和NSNull的区别
- ios Nil nil NULL NSNull的区别和使用
- IOS中nil、Null、Nil和NSNull的区别
- nil Nil null @"" 关于nil和 null和NSNull的区别及相关问题||(null) <null> nil 问题
- iOS中nil/Nil/NULL的区别以及[NSNull null]
- iOS JSON返回的数据有NSNull导致程序崩溃及ios nil、NULL和NSNull的区别
- ios nil Nil NULL NSNull区别
- iOS中nil、Nil、NULL、NSNull 区别
- Xutils 3.0+数据库操作
- TCP、UDP、IP 协议分析
- 打印功能的实现
- Android Studio导入Github工程问题总结-download gradle非常慢
- dubbo与zookeeper的交互-1
- iOS-nil、Nil、NULL和NSNull区别详细说明(去除数据请求返回的null)
- sum Double in java
- 关于Struts2 Global-allowed-methods 标签
- 好用的ListView
- c#+oracle实现读取图片并显示在picturebox中
- Spring Boot CLI 安装
- caffe学习笔记(13):python cv2.imread()读取图片和matlab读取图像的区别
- Java String深入理解
- 大四最后的一个多月,我想开始写点什么,记录一下自己能在这条路走多远