在编码JSON时,我正在用if let语句展开数据包,但是我想让一个变量全局可用

do {
  if
    let json = try JSONSerialization.jsonObject(with: data) as? [String: String],
    let jsonIsExistant = json["isExistant"]
  {
    // Here I would like to make jsonIsExistant globally available
  }

这可能吗?如果不是的话,我可以在这个里面做一个if声明,但是我不认为这是聪明的,甚至是不可能的。

最佳答案

德克莱在你想要的地方存在。如果您正在制作一个iOS应用程序,请创建变量

var jsonIsExistant: String?

那么现在就用它
do {
    if let json = try JSONSerialization.jsonObject(with: data) as? [String: String],
    let tempJsonIsExistant = json["isExistant"] {
        jsonIsExistant = tempJsonIsExistant
    }
}

这可以像这样重写
do {
    if let json = try JSONSerialization.jsonObject(with: data) as? [String: String] {
        jsonIsExistant = json["isExistant"]
    }
} catch {
    //handle error
}

如果处理第二种方法,那么必须检查JSONISIONTANT在使用前是否为零,或者您可以立即用A打开它。如果你确信它每次都会成功地成为一个字段“iSaleNoT”,它就成功地成为JSON。

10-08 07:15