iOS开发中为NSNull的分类添加“属性”

场景:

后台返回的数据中的某个字段对应着一个数组,这个数组是UITableView的数据源。

前提:我们将后台返回的JSON数据直接转成了字典使用,并没有将字典转成一个模型。

在返回UITableView的cell个数的方法里我们直接使用了数组。假设这个数组对应的字段是data,我们将后台返回的JSON数据转成了字典dic;

方法:NSArray * arr = dic[@"data"];  return arr.count;

一般情况下程序并不会出现错误,可当后台返回的字段data突然变成了null,那么我们的程序就会崩溃。

解决方法:

1.将我们已经转成的字典转成模型(model)。

NSArray * arr = model.data。  return arr.count;

arr即使是nil也不会让程序崩溃,  如果后台返回了null,那么arr.count就是0了.

2.为NSNull添加一个分类,分类中添加一个count的“属性”,这个属性并不是我们通常理解的属性(我们知道分类要想添加属性,需要使用runtime,我并没有用到runtime),我只为这个属性重写了get方法,并且get方法返回的是0 。


.h文件
.m文件
实现

虽然我现在并没有见到其他人用过,可这也算是解决问题的一种思路。自己去为NSNull写一个分类还可以在在出现null的时候及时提醒我们,并且不会让程序崩溃。

3.不要让后台返回null。

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,193评论 0 13
  • 1.为什么说Objective-C是一门动态的语言? 一、动态语言,是指在程序运行时能够改变其结构,新的函数可以被...
    年轻就要活出样阅读 473评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,738评论 18 399
  • 习惯若不是最好的仆人,便是最差的主人,拥有好习惯必定让人终身受益,投资理财也同样如此。比如每天记账、每月强制储蓄等...
    8846482d58c9阅读 387评论 0 4