,nil和Nil和NULL的判断

开 发过程中,我们通过http请求,后台返回json数据,而有时数据里某一字段的值为null~,然后我们把此值赋值给 NSArray,NSdictionary,或是NSString,然后我们会判断此值为null时,所做的处理,而通常惯性思维判断时我们都会 写:if(dict == nil)或是if(dict == Nil)或是if(dict == NULL)再或是if(dict isEqual nil),我们发现,都不好用,根本没有起到判断的作用~后来我才发现,原来不能这样来判断。

简单点说,就是当字典,数组为null时,后台打印的输出结果是这样:

然后,我们需要在代码判断时利用[NSNull null]来判断,具体如:

isEqual:[NSNull null] 就搞定了,nsarray也是同样的道理。

控制台打印:str=(null) 代表着 字符串或数组或字典是一个空指针,(而非空字符串)判断的时候,直接用:

if(str == nil)就可以了。如下图所示:

而控制台打印:str =  <null>,代表着这是一个空字符串,赋值为空,指针是存在的,只是内容为空,这种判断需要使用:

if(str is equal [NSNull null ]) ,因为在ios上,内容为空不能简单的判断str==null(null 在ios上得用[NSNull null])

一般这种情况是,服务器那边是null,直接返回@"null"的字符串,这样在ios这边不好判断,最好跟后台沟通,如果遇到null值,返回@"",好做判断

最新文章

  1. Python中Paramiko协程方式详解
  2. linq 多表分组查询统计
  3. 《BI那点儿事》数据流转换——派生列
  4. .NET Core竟然无法在Mac下进行build
  5. 信息安全系统设计基础实验一 20135211&amp;20135216
  6. So easy Webservice 3.使用HttpClient工具调用Webservice接口
  7. linux c多线程编程范例
  8. Provider Pattern提供者模式和策略模式
  9. css3怎么隐藏dom:4种方法
  10. BZOJ 2535 Plane 航空管制2
  11. 使用 Windows Media Center 远程控制
  12. lodoop打印控制具体解释
  13. My new life
  14. centos ELK安装
  15. java中的接口概念
  16. 不使用SpringBoot如何将原生Feign集成到Spring中来简化http调用
  17. 【Android】用Cubism 2制作自己的Live2D——官方App样例源码学习(1)!
  18. CefGlue中js与C#交互(实现mp3播放)
  19. PHP:第四章——PHP数组处理函数
  20. Java项目体验

热门文章

  1. 洛谷 P2368 EXCEEDED WARNING B
  2. Android开发人员应该知道的Kotlin
  3. Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function
  4. UVA 11374 Airport Express SPFA||dijkstra
  5. 4、基于JZ2440之编写测试代码处理(处理图片识别人脸)
  6. 【例题 6-7 UVA - 122 】Trees on the level
  7. 快速理解Java中的五种单例模式(转)
  8. php实现记忆化递归--以斐波那契数列为例(还是以边学边做为主,注重练习)
  9. [Node] Define MongoDB Model with Mongoose
  10. 【LeetCode-面试算法经典-Java实现】【096-Unique Binary Search Trees(唯一二叉搜索树)】