NSNull floatValue intValue 找不到指定方法解决方案

近期遇到一个问题:

由于后台人员对于接口数据没有做空值处理,导致客户端接收到的有些数据为空(NSNull),而针对此类数据恰好客户端的存储结构为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 找不到指定方法解决方案

时间: 2024-08-24 20:00:37

NSNull floatValue intValue 找不到指定方法解决方案的相关文章

NSNull floatValue intValue 找不到指定方法解决方式

最近遇到一个问题: ? ? ? ? 因为后台人员对于接口数据没有做空值处理.导致client接收到的有些数据为空(NSNull),而针对此类数据恰好client的存储结构为int和float类型.类型转换时报出了[NSNull intValue]或者[NSNull floatValue] unrecognized selector sent to instance 的错误. 解决此问题尝试了下面思路: 1 加入returnObject == [NSNull null] 推断,NSNull的元素配

asp.net调用非托管dll,无法加载 DLL,找不到指定模块解决方法。

最近开发一个项目,里面用到了非.net开发的一个dll文件接口,发现发布到window2003服务器上后,运行网站总是提示 "无法加载 DLL"D:\11\1.dll": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). "这个错误.但是我在本地xp系统上调试是可以的. dll使用com调用如下 [DllImport(@"D:\11\1.dll", EntryPoint = "aaa", CharSet

关于找不到指定的模块,异常来自HRESULT:0x8007007E的解决方法

上午从公司前辈那里拷贝到的ASP.NET代码,在自己机器上部署的时候发现问题,直接报错,找不到指定的模块,异常来自HRESULT:0x8007007E.并且一大堆警告. 在网上百度很多解决方法,归纳如下: 1.缺少DLL文件,我用depends打开我的BLL.DLL,发现确实缺失两个DLL文件,于是补齐,但是无济于事.此方法不通. 2.引用时候代码问题,主要是看代码是托管还是非托管,这里尝试,依然没成功. 最后请教了前辈,是这样解决的: 对网站(注意是网站,不是网页)点击右键-属性,会出来一大堆

VBScript报“找不到指定的模块”的处理方法

[背景] 一个用户电脑提交流程的时候报错,报"找不到指定的模块"js错误,打开js调试工具后,发现这行代码报错: window.execScript("Function vbsFun(str):vbsFun=hex(asc(str)):End Function","vbscript"); 起初以为是用户IE浏览器的问题,各种重置,控件重装,都无法解决. 搜索window.execScript也无果.最后以vbscript为关键字搜索发现问题的端倪

IIS自定义404错误页显示“系统找不到指定的文件”解决方法

在IIS站点属性里面设置了自定义的404错误页面为一个文件之后,有时一直不生效,总是提示这样一句话:“系统找不到指定的文件”. 其实这种错误也只是在某些网站程序中出现,其实解决办法很简单.这是由于IIS的普通用户没有访问指定的404.html页面的权限,造成了自定义的404错误页面无法显示,才显示“系统找不到指定的文件”.我们只要赋予指定的404.html页面给予USER用户组具有读的权限权限,就可以解决此问题. 就这么简单,事情就能轻松搞定. 在这里要提醒一下,有的人看到消息类型是“文件”设置

c# 无法加载 DLL xxxxxxxx找不到指定的模块。 (异常来自HRESULT:0x8007007E)。的一个解决方法

最近在做一个程序,想把某些功能用C++写成DLL供C#调用.但是无法如何都无法调用,提示"无法加载 DLL xxxxxxxx找不到指定的模块. (异常来自HRESULT:0x8007007E)." 而这个DLL放在另外一个程序却可以正常调用,经过仔细对比两者的区别时,发现这个DLL需要另外一个DLL文件,而另外的程序有另外的DLL,这个程序没有.于是把这个DLL放在这个程序的目录下就能正常调用自己写的DLL了.呵呵,真是惭愧.

c# 无法加载xxx.dll 找不到指定的模块(如何指定文件夹)

如果直接放在项目运行目录,例如bin/debug可以直接加载,但是这样比较乱. 如果在放debug里面的一个文件夹里面,有可能会报错“无法加载xxx.dll 找不到指定的模块”. 如果路径写成这样就会报错 framework/linphone 解决方法:将/ 改成"\" framework\linphone

未能加载文件或程序集“”或它的某一个依赖项。系统找不到指定的文件

连续两天都为这个运行时错误“类型初始值设定项引发异常”而烦恼,调试也不知道哪里出了问题.上网Google一下,一大堆相同的问题,可是按照那些方法折腾来折腾去,问题还是一样.最后在CSDN上发帖子问了,果然“重赏之下必有勇夫”,很快就有高手回复了,问题也随着解决了.哈哈.在此写个随笔,以后如果大家遇到类似问题,也可参考一下,自己也做个备忘,不然放在电脑上,又找不到,我的电脑文件到处乱放,有时连我自己都找不到^_^. 问题是这样嘀: 项目采用了三层架构和工厂模式,并借鉴了PetShop的架构,因为这

win10更新后文件夹无法移动和重命名,提示找不到指定文件

可以说,经历了那么多的windows系统,但是版本最多的,还是这个win10系统,但是不得不说,现在的win10系统在经历了众多版本的升级之后,也开始变得越发的完善了,不过其中的问题似乎也是蛮显著的,在一次又一次的升级过程中,Windows用户遇到的问题也是不少的. 最近有很多朋友发现了一问题,win10更新系统后出现文件夹无法移动和重命名,提示找不到指定文件的现象:          在 Windows 10 中,重命名文件或者文件夹总是自动闪掉,导致无法正常对文件夹或者文件夹进行重命名.或者