无法将类型 '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"]是否是字符串,然后根据该语句,您可以像下面一样附加数据

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

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

你从字典里拿出一些东西。结果是一个可选值,而且它可以是大约任何类的对象,例如 NSNull。

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

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

最新更新