Swift 2 个可选字符串保护
Swift 2 optional guard on string
我正在处理 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"
}
但也失败了。
任何时候你用 !
强制解包你 运行 在值为 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
我正在处理 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"
}
但也失败了。
任何时候你用 !
强制解包你 运行 在值为 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