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

时间:2016-07-14 07:49:26

标签: ios json swift

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

2 个答案:

答案 0 :(得分:14)

使用if letguard语句检查dict["googlepluslink"]是否为字符串,然后根据您可以附加您的数据,如下所示

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

答案 1 :(得分:0)

    self.googlepluslink.append((dict["googlepluslink"] as? String)!)

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

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

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

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