NSNull了解

我们都知道nil是代表了对象为空,Nil代表类为空,NULL是其他类型的值为空(比如C语言类型)。很多博客和资料上说NSNull代表了在集合对象中表示空值的对象。

这句话又是什么意思?难道集合对象中的值为空不也就是nil吗?为什么官方还会做出来NSNull这个类型。

在OC中只要定义了两种容器,NSDictionory和NSArray,而且要求这两种容器中的对象都不能为空,也就不能位nil,为了保证count的正确性。但是集合中一定是会存在元素为空这一情况,就在nil指针的位置存放了NSNull对象,用来表示空对象。

带来的问题:

在遍历的时候如果集合中有空元素,这样会给程序带来crash。kvo的使用也会带来NSNull。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言:面试笔试都是必考语法知识点。请认真复习和深入研究OC。 目录:iOS-面试题-OC基础篇 (1) - (84...
    麦穗0615阅读 4,271评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,880评论 1 10
  • 关键词/关键类 1.#import跟#include有什么区别,@class呢,#import<>跟#import...
    丶逐渐阅读 1,472评论 0 1
  • 很多时候我很在意你,但毕竟我在我的城市有我的生活,无法顾及的太多,我很想知道你过得好不好,因为你的一切我都无法...
    南城沙阅读 217评论 0 2