我的iPhone应用程序崩溃了,出现了这个错误:

[724:95876] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull objectForKey:]: unrecognized selector sent to instance 0x1b5970878'

就这样。我不知道坠机到底在哪里。我参与的项目非常庞大,是否有任何方法可以详细了解objectForKey上的NSNull调用在哪里?

最佳答案

看来您正在从Web服务中获取数据,如果是这样的话,其中一些值将作为null来。始终尝试投放您的回复,并根据期望值进行评估

您可以像这样在定义头文件中设置一些宏方法,也可以定义近接口(interface)声明

//公式形成

 #define NULLVALUE(m)                    ((m == nil || m==[NSNull null]) ? @"" : m)
 #define NULLVALUESpace(m)                    ((m == nil || m==[NSNull null]) ? @" " : m)
 #define NULLVALUEflaot(m)                  ((m == nil || m==[NSNull null]) ? 0.0f : (float)m)
 #define NULLVALUEcolor(m)                    ((m == nil || m==[NSNull null]) ? @"ffffff" : m)
 #define NULLVALUEOut(m)                    ((m == nil || [m length]==0) ? @"" : m)
 #define NULLArray(m)                    ((m == nil || m==null) ? new NSArray : m)
 #define SET_IF_NOT_NULL(TARGET, VAL) if(VAL != [NSNull null]) { TARGET = VAL; }

然后可以在代码中的任何地方使用它
喜欢
[NSString stringWithFormat:@"%@", NULLVALUESpace([Response objectForKey:key])];

关于ios - [NSNull objectForKey:]崩溃的原因,但我找不到,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51267280/

10-09 01:38