0

我正在处理 swift 2.0 中的一个问题

我从 API 获得了一个 json 文件,我试图从中解开一些字符串。

有时这个 json 会给我一个带有场地街道名称的字符串,但有时不会。所以当我尝试这个时

var street = arrRes[indexPath.row]["venueLocation"]!["street"] as! String 

它总是让我的应用程序崩溃,说它是零。当我评论它时,我的应用程序运行完美,但它没有显示街道。知道如何在没有任何问题的情况下解开字符串nil吗?

如果尝试此代码

var street = arrRes[indexPath.row]["venueLocation"]!["street"] as! String 

if street == "" {
   street = "n/a"
}

但它也失败了。

4

1 回答 1

5

任何时候你强制解包,!你都会冒着在值为 nil 的地方崩溃的风险。相反,您可以尝试像这样展开:

guard let venueDictionary = arrRes[indexPath.row]["venueLocation"] as? [String:AnyObject], let street = venueDictionary["street"] as? String else {
   //You don't have a street string, fail gracefully 
}
print(street)//Now you can use street safely as a string here
于 2016-06-02T19:35:11.627 回答