服务器返回null

开发者吐槽因服务器返回JSON中value为null导致应用崩溃的问题,并分享了解决方案:通过宏定义检查null值并使用category方法增强代码健壮性。
刚修复个bug,原来又是某个接口返回的json中的value是特么null!当取这个value进行一些操作自然会崩溃掉


这种情况发生次数太多了,今天实在忍不住上来吐个槽,毕竟我不能每个value都监测下是不是null吧?!


这服务器怎么写的,数据库怎么建的?添加数据的时候怎么验证的?接口返回的时候怎么处理的?


估计都特么随便一弄糊弄事了。。。


服务器靠不住,于是。。。于是写了个宏

#define checkNull(__X__)        (__X__) == [NSNull null] || (__X__) == nil ? @"" : [NSString stringWithFormat:@"%@", (__X__)]



然后每次发现crash是null导致的我就check null!


要要checknull,每天这来两句还挺带感的嘛


要要checknull,动词打次动词打次,苍茫的天涯是我的爱。。。



突然发现原爱我在一个月以前就发过类似的帖子。。。
其实我觉得该有null的做处理是应该的,不过有些关键的,比如用户id之类的,这类参数你很多时候请求服务器是需要用的,返回null即使你处理了,这个客户端也是有问题的,我的意思不是一棒子打死返回null就不行,而且有的时候连这个key都有可能没有!不过无所谓了,看到上一个帖子有个回复不错,写了个category,这个方法不错,于是。。。



#import "NSDictionary+safeObjectForKey.h"
#define checkNull(__X__)        (__X__) == [NSNull null] || (__X__) == nil ? @"" : [NSString stringWithFormat:@"%@", (__X__)]


@implementation NSDictionary (safeObjectForKey)


- (NSString *)safeObjectForKey:(id)key
{
    return checkNull([self objectForKey:key]);
}


@end



说实话,如果是我自己的产品,我是绝对不会这么用的,凭空增加了运算,不过反正也是外包项目,而且服务器那边也不保证返回正确,那我也没办法


不过这样的代码真的算是增加程序的健壮性吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值