NSNull floatValue intValue 找不到指定方法解决方式
Posted xfgnongmin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSNull floatValue intValue 找不到指定方法解决方式相关的知识,希望对你有一定的参考价值。
最近遇到一个问题:
? ? ? ? 因为后台人员对于接口数据没有做空值处理。导致client接收到的有些数据为空(NSNull),而针对此类数据恰好client的存储结构为int和float类型。类型转换时报出了[NSNull intValue]或者[NSNull floatValue] unrecognized selector sent to instance 的错误。
解决此问题尝试了下面思路:
- 1 加入returnObject == [NSNull null] 推断,NSNull的元素配置一个目标类型的初始值。
问题攻克了,但这样做的话对于应用须要改动的地方较多,想想比較烦。 - 2 想到此问题的引起原因是NSNull缺失这两种方法,也就是说仅仅要为NSNull扩展补充缺失的方法就不会有问题了。
扩展NSNull代码例如以下:
#import "NSNull+NullCast.h"
@implementation NSNull (NullCast)
- (float)floatValue
{
return 0.0;
}
- (int)intValue
{
return 0;
}
@end
在可能出现相似问题的类中引入NSNull+NullCast这个类问题就攻克了。无需改动逻辑代码。
以上是关于NSNull floatValue intValue 找不到指定方法解决方式的主要内容,如果未能解决你的问题,请参考以下文章