字符串上的Swift 2可选护卫

时间:2016-06-02 19:26:26

标签: swift2 guard-statement

我正在处理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"
}

但它也失败了。

1 个答案:

答案 0 :(得分:4)

任何时候强行打开!,你都有可能在值为零的情况下崩溃。相反,您可以尝试展开,如:

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