我的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/