iOS 关于(null)和<NULL>,你真的注意过
2017-04-21 本文已影响299人
一杯红酒mm
在开发过程中,有很多细节的东西我们都不太注重。今天我们来分析下(null)
和<null>
1、 (null):字符串默认值
- 什么是
(null)
:(null)
是字符串未赋值时的默认值 - 如何用代码判断(null)呢?直接
[str isEqualToString:@""]
?还是[str isEqualToString:@"(null)"]
?当然不是这样了。那我们直接代码见:
关于(null)
和nil
的关系:控制台中打印的(null) == 代码中得nil
关于判断(null)
我们列举了5种情况,其中2、3、5都可执行,也就是都可判断成功
2、<null>:后台默认空值
-
什么是
<null>
:<null>
一般是在我们和后台接口对接时返回给我们的键值对里的空值
-
我们
iOS开发
中并不支持<null>
这种空值的,如果你取出来了,那么恭喜你,程序会蹦的一塌糊涂,保证你打了全局断点也没有用。所以就需要我们用isKindOfClass
或isEqual
这两种方法判断啊。当然大批量的判断用这样的方法是不可取的。你想下,如果有一万条<null>
你还判断一万次啊 -
所以想大批量判断请走这里:大批量判断后台NULL传送门走起 。貌似我们跑偏了,今天我们重点研究的可不是大批量判断
-
那我们就言归正传,首先我们创建一个字符串,然后赋值NULL,直接上图:
可以看出,黄色区域的代码用来判断<null>
都是可行的
其实我们日常开发中还有很多小细节的东西我们都在不经意间忽略
没有一蹴而就的天才,只有不断点亮天赋的勤者