美文网首页
Null容错处理

Null容错处理

作者: 林三更 | 来源:发表于2018-06-14 23:52 被阅读14次

做移动开发最怕什么,没错,万恶的闪退🌚。
无论缺省处理做的多好,闪退一下回到解放前😭
Null就是导致闪退原因之一,特别是上线之后,后台数据库查不到数据就给你Null
那么做好Null容错处理就成了必须的功课了

看看App启动之后做的


思路

  • JSON取值就是危险区,因为我们不知道会返回什么数据给我们。
  • JSON在OC中就是Dictionary,JSON取值就是Dictionary取键值
  • Null系统自动成了NSNull类型
  • OC和谐之母nil(因为我们给nil发任何消息都不会闪退)

整理下,下面就是我们想要的

// JSON取值,若为Null,那么就nil处理,防止给Null发消息导致闪退
id keyValue = [JSON objectForKey:key];
if ([keyValue isKindOfClass:[NSNull class]]) {
    keyValue = nil
}
注意

❗️dictionary取键值,键不存在,那么键值必是nil。

其他

本来想用Runtime去hook的,结果发现对Dictionary取键值不行,后来看了其他的文章,大致的说法就是Runtime虽然厉害,但是小心炸到自己,特别是项目中第三方比较多的情况下。鉴于上面两个原因,自己做了简单封装,只能稍做整理。
Demo传送门🚪

相关文章

  • Null容错处理

    做移动开发最怕什么,没错,万恶的闪退?。无论缺省处理做的多好,闪退一下回到解放前?Null就是导致闪退原因之一,特...

  • Java String 对 null 对象的容错处理

    前言 最近在读《Thinking in Java》,看到这样一段话: Primitives that are fi...

  • 处理null

    后台返回的结果 错误示例: 正确: 通过模拟请求我们看到的是null实际显示到界面上的时候是(null)如图尝试使...

  • mysql中!=的坑

    sql是脚本语言,容错性高,一不注意就踩坑。例如,如果某条记录的state是null,下面语句是不成立的,null...

  • 处理NULL问题

    有时候后台在偷懒的的时候 给你返回NULL 那么问题就来了。。。 MySelfWorkInfoModel.h My...

  • nil,Nil,null,NSNull的区别

    各自的含义: iOS开发服务器返回(null) 与的处理

  • 《AWS 云计算实战》笔记(十一)——容错设计

    容错设计 容错系统就是为故障而构建的。如果发生故障,容错系统将不会中断,并且可以继续处理请求。 EC2 虚拟服务器...

  • 用C一步步开发web服务器(2)

    顺着教程1往下走,这个章节我们需要开发支持并发的web服务器,并加入容错处理 首先加入容错处理,建议将socket...

  • C#null运算符

    null运算符 ==C#提供了三个简化null处理的运算符== null合并运算符 null合并赋值运算符 nul...

  • Spring Cloud Alibaba之服务容错组件 - Se

    服务容错 为什么需要服务容错? 服务之间存在调用关系,如果被调用服务down掉,处理不及时的话,就会造成雪崩效应,...

网友评论

      本文标题:Null容错处理

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