Ios 无法将类型为“NSNull”(0x10aa1b600)的值强制转换为“NSString”(0x10B448)

Ios 无法将类型为“NSNull”(0x10aa1b600)的值强制转换为“NSString”(0x10B448),ios,json,swift,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”0x10aa1b

我的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-let或guard语句检查dict[googlepluslink]是否为字符串,然后根据这一点,您可以像下面这样附加数据

if let link = dict["googlepluslink"] as? String 
{ 
    self.googlepluslink.append(link)
} 
else {
    self.googlepluslink.append("-")
}
这是完全奇怪和自相矛盾的

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

然后使用as将其转换为String?这意味着您将获得一个可选字符串,如果字典中没有任何内容或无法转换为字符串,则不会发生崩溃

那你就用这个!运算符,如果可选字符串为nil,则该运算符将崩溃。这完全没有道理

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