Константа используется перед инициализацией для функции JSON |стриж - PullRequest
0 голосов
/ 21 октября 2019

Я хотел бы декодировать JSON и использовать результаты, чтобы определить, что делать в условном выражении

Ниже приводится функция JSON:

var checkStructure = [Structure1]()

     func checkingJSON() {
             guard let url = URL(string: "https://example.com/example/example"),
                 let value = name.addingPercentEncoding(withAllowedCharacters: .urlQueryValueAllowed)
                 else { return }

             var request = URLRequest(url: url)
             request.httpMethod = "POST"
             request.httpBody = "name=\(value)&name2=\(example1)".data(using: .utf8)

             URLSession.shared.dataTask(with: request) { data, _, error in
                 guard let data = data else { return }
                 do {
                     self.checkStructure = try JSONDecoder().decode([Structure1].self,from:data)
                     DispatchQueue.main.async {
                     }
                 }
                 catch {
                     print(error)
                 }

                 }.resume()

         }

Вот как я его декодирую:

struct Structure1: Codable {
    var name, NUM1 : String

    enum CodingKeys: String, CodingKey {
        case name
        case NUM1 = "NUM1"
    }
}

И когда нажимается элемент кнопки панели, должно выполняться следующее условие:

let structureValue: Structure1

 if let num = Int(structureValue.NUM1), num < 1 {

       let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Del1") as! TableViewController1
       let navigationController = UINavigationController(rootViewController: controller)
       self.present(navigationController, animated: true, completion: nil)
       tableView.deselectRow(at: indexPath, animated: false)

  } else {

      let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Del2") as! TableViewController2
      let navigationController = UINavigationController(rootViewController: controller)
      self.present(navigationController, animated: true, completion: nil)
      tableView.deselectRow(at: indexPath, animated: false)

      }

Но я получаю следующее сообщение об ошибке для строки let structValue:

if let num = Int(structureValue.NUM1), num < 1 {

Константа StructureValue, используемая до инициализации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...