无法将’NSNull’(0x10aa1b600)类型的值转换为’NSString’(0x10b4dab48)

我的json有googleplus餐馆的链接,如果餐厅没有任何googleplus链接,它显示null但是我得到如上所述的错误。

if dict["googlepluslink"] != nil { self.googlepluslink.append((dict["googlepluslink"] as? String)!) } else { self.googlepluslink.append(("-" as? String)!) } 

无法将’NSNull’(0x10aa1b600)类型的值转换为’NSString’(0x10b4dab48)

使用if letguard语句检查dict["googlepluslink"]是否为String然后根据你可以追加你的数据,如下所示

 if let link = dict["googlepluslink"] as? String { self.googlepluslink.append(link) } else { self.googlepluslink.append("-") } 
  self.googlepluslink.append((dict["googlepluslink"] as? String)!) 

这完全是古怪和自相矛盾的。

你从字典中取出一些东西。 结果是一个可选值,加上它可以是任何类的对象,例如NSNull。

然后使用as将其强制转换为String? 这意味着你得到一个可选的字符串,如果字典中没有任何内容或者某些东西无法转换为String,则不会崩溃!

然后你用! 如果您的可选String为nil, 运算符崩溃。 这一切都没有任何意义。