php 容错处理,后台接口的坑&容错处理

坑1:给你看似"正确的值",但类型错误,需要仔细观察,后根据类型操作

给你看似"正确的值",但类型错误,如图:

51794f103cdc

给你看似"正确的值",但类型错误.png

如图,当你没注意到类型已经变化的时候,如果这是你还采用for语句去获取你认为还是数组的client_menu的时候,就基本上会出现崩溃了。所以,如果遇到崩溃的时候,还需需要仔细检查返回的类型是否有问题(自己之前就遇到过测试环境和正式环境返回的类型不一样的问题,而导致崩溃)。

NSMutableArray与NSMutableDictionary一个是可变数组,一个是可变词典,两者都可以通过for语句来取值。

for ( in ) {

}

不同的是,

①可变数组NSMutableArray通过for ( in ) 时,取到的object就是数组里的元素;

②而可变词典NSMutableDictionary通过for ( in ) 时,取到的object就是词典里的key;

附:NSMutableDictionary的枚举方法

//一般枚举方法

NSArray *keys = [dic allKeys];

NSInteger length = [keys count];

for (NSInteger i = 0; i < length;i++) {

id key = [keys objectAtIndex:i];

id obj = [dic objectForKey:key];

NSLog(@"%@", obj);

}

//快速枚举方法

for (id key in dic) { //注意这里取到的object就已经是key了

id obj = [dic objectForKey:key];

NSLog(@"%@", obj);

}

//通过枚举类型枚举

NSEnumerator *enumerator = [dic keyEnumerator];

id key = [enumerator nextObject];

while (key) {

id obj = [dic objectForKey:key];

NSLog(@"%@", obj);

key = [enumerator nextObject];

}

坑2:服务器返回数据看起来一样,实际多了写没用的特殊字符,需要去掉

如果我们的后台接口返回的数据有加密,那我们自然要对加密的数据进行解密,但解密之前,我们必须先确保服务器返回的数据没有多余的特殊字符,否则会解密失败。

下面这个例子,是测试环境的时候我们去掉了多余的\n,但是正是环境的时候却发现还有\r要去掉。之前就是没发现服务器返回的数据不一样(虽然可能看起来一样,但是多了特殊字符),而导致的错误。所以这里我们把所有的特殊字符\r、\n都去掉即可。

51794f103cdc

686CF33F-4E32-43C7-A5D4-37F8D19B524C.png

坑3:待补充

容错处理

其他容错处理运用runtime黑魔法,异常处理等就可以处理了,老生常谈,就不详细介绍了。

以下是一个参考例子: ios 容错处理JKDataHelper和AvoidCrash

完!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值