美文网首页
iOS 中空现象(nil & Nil & NULL & NSNu

iOS 中空现象(nil & Nil & NULL & NSNu

作者: CoderHG | 来源:发表于2019-06-11 00:18 被阅读0次
    是否能编译通过?

    iOS 中的空现象主要包括 nil / Nil / NULL / NSNull,具体定义以及描述可通过链接点击查看。在实际开发中,对于 Nil 除非特意设置这样的值,否则不会出现,我是从没使用过。

    一、nil

    在 OC 中 nil 是安全的,这是 iOS 程序员记忆在骨子里的铁律。所以每次在写代码的时候,只要是一个对象为 nil 的时候就放心了。但是要清楚的一点是,这里的安全仅仅是针对给一个 nil 指针发送消息是的安全。如果说使用 nil 访问了不该访问地方,该 crash 还是得要 crash。比如通过 nil 直接访问成员变量:

    crash

    在实际开发中这种情况往往会发生在 block 中,比如在 block 中做对 self 做了 weak 处理,然后通过 weakSelf 访问其成员属性,这样当 weakSelf = nil 的时候, crash 就会发生。
    除此之外,比较常见的与 nil 相关的 crash 就是往一个集合 对象中添加一个 nil。
    欣赏一张图:

    image.png

    二、NULL

    在开发中,一般给一个 block 设置成空, 习惯性的就会使用这个。只要不乱设置,一般不会出现问题。

    三、NSNull

    这个就比较厉害一点了, 比 NSProxy 还要 光杆司令。偷偷的瞧瞧:

    image.png
    有什么用呢?这东西感觉就是拿来 占位置 的,比如在一个集合中的某个位置不详空着,但是也不想放实际的东西,那么就可以使用他了。
    一般还会出现在后台接口返回为空的情况,所以一定要处理好这种情况,一般字典转模型的工具都会帮忙转成 nil 的。 NSNull 能接收什么样的消息

    四、说点是什么吧

    鲁迅说:
    1、别人说你不行,没有必要千方百计的去证明什么。
    2、梦里有时终须有、梦里无时莫强求,与 无关。
    3、有的时候、努力也需要一个平台,不是所有人都那么厉害。有时候努力寻高人,胜过努力做好一件事。
    4、只要别人看不起你,你吸一口气,别人都会说你怎么这么奇怪,尽然还吸气。

    鲁迅说

    相关文章

      网友评论

          本文标题:iOS 中空现象(nil & Nil & NULL & NSNu

          本文链接:https://www.haomeiwen.com/subject/hfedfqtx.html