iOS 处理后台丢给的 ‘null’ 问题

错误.jpg

问题

  • 在应用开发中,避免不了前端要和后台产生数据通信。
  • 在后台查询数据库时,假如数据库没有数据,部分后台没有加处理的话就会返回 ‘null’ 。
  • 移动端接收到后台发送的null的时候使用 objectForKey 或者直接dict[@""];程序会崩溃

解决 崩溃问题

上面的这些 ‘轮子’ 都能帮我们解决 因为 ‘null’ 所造成的崩溃问题。使用方法就不详写了。上面的介绍里面写的有。

null.png

解决显示 ‘null’ 的问题

  • 思路一
    每个显示的地方都加一层判断,虽然这样无疑是可以解决问题,但是这样容易漏加,而且不易维护和修改。
  • 思路二
    重构 UILabel 的方法。但是最好还是不要修改系统的东西。
  • 思路三
    在请求返回数据的地方遍历所有数据,然后发现 ‘null’ 就变为字符串空。
    但是这样遍历,如果数据稍微再大点 就会影响性能。
  • 思路四
    我这里以 JSONModel 为例
    修改 JSONModel ,在字典转 model 时,加一步判断就OK了。推荐这种
    代码如下 (JSONModel.m )中
    方法名
-(BOOL)__importDictionary:(NSDictionary*)dict withKeyMapper:(JSONKeyMapper*)keyMapper validation:(BOOL)validation error:(NSError**)err

在里面添加

if ([jsonValue isKindOfClass:[NSString class]]) {
            if ([jsonValue isEqualToString:@"null"]) {
                jsonValue = @"";
            }
        }

这样就大功告成了。

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

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,860评论 0 9
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,260评论 4 61
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 7,543评论 2 50
  • 一、Docker是什么 Docker 是一个开源项目,诞生于 2013 年初,Go 语言实现。Docker 项目的...
    63e29c663713阅读 1,534评论 0 0
  • 《绘画艺术疗法第六课》感悟 韦老师提到,庄子善于用象征和隐喻的方法,谈到一个“有用和无用”的例子,村子里一个残疾人...
    精神灿烂阅读 1,586评论 0 0