前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开发中为NSNull的分类添加“属性”

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

作者头像
用户1451823
发布2018-09-13 15:32:36
7660
发布2018-09-13 15:32:36
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337712

场景:

后台返回的数据中的某个字段对应着一个数组,这个数组是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。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年01月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档