setObjectForKey:iphone 应用程序中的对象不能为零崩溃

setObjectForKey: object cannot be nil crash in iphone app

我是 iphone 应用程序开发的新手,我在下面的代码行中遇到了这个异常,有人可以帮我解决这个问题吗?

错误

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: object cannot be nil (key: varText)'

代码

 [bodyDict setObject:textobj.varText forKey:TEXT_KEY];

最初你从 textobj.varText 得到 nil 值,所以检查字符串长度是否为空

if([textobj.varText length] != 0)
  [bodyDict setObject:textobj.varText forKey:TEXT_KEY];
else
  [bodyDict setObject:@"" forKey:TEXT_KEY];

简短易读的方法:

bodyDict [TEXT_KEY] = textobj.varText ?: @"";

?: 运算符检查第一个操作数是否为 nil。 returns 如果它不是 nil 则它是第一个操作数,如果第一个操作数是 nil 则它是第二个操作数。