我在加载 json 数据 Swift4 时遇到问题,但找不到它,为什么?

I have a problem loading json data Swift4 when its not found, why?

当我的脚本要求服务器加载数据并接收所需数据时,一切顺利,但当它找不到所需数据时,我无法在其他地方执行某些操作。

func myJSON(sec:Int) {
    var request = URLRequest(url: URL(string: "https://xx.com/index.php")!)
    let postString = "sec=\(sec)"
    request.httpMethod = "POST"
    request.httpBody = postString.data(using: .utf8)
    request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")

    let task = URLSession.shared.dataTask(with: request) {
        data, response, error in
        if error == nil, let data = data {
            do {
                if let jsonData = try JSONSerialization.jsonObject(with: data, options: []) as? [[String:String]] {
                    for item in jsonData {
                        if let sec = item["sec"] {
                                self.myArray_sec.append(sec)

                                DispatchQueue.main.async {

                                        self.myTable!.reloadData()
                                        //It is happening here and things are going well
                                        self.myTable!.tableFooterView?.isHidden = true

                                }

                        }else if let error = item["error"]{

                            DispatchQueue.main.async {
                                print("error: ",error)
                                //But here it cannot be done
                                self.myTable!.tableFooterView?.isHidden = true

                            }
                        }
                    }
                }
            } catch let error as NSError {
                print("error: ",error)
            }
        }
    }
    task.resume()
}

Printing error: no Data

PHP Code works

 $result = mysqli_query($con,"SELECT * FROM `myTable` WHERE `sec`='".$_POST['sec']."';");

    while($data = mysqli_fetch_assoc($result)) {
         $rows[] = $data;
    }

    if ($rows[0]['sec'] != "") {
        print json_encode($rows);
    } 
    else {
        print '[{"error":"no Data"}]';
    }

问题已通过计时器解决

}else if let error = item["error"]{

     DispatchQueue.main.async {
          print("error: ",error)

          let myTimer = Timer.scheduledTimer(timeInterval: 2,
                                             target: self,
                                             selector: #selector(self.refresh),
                                             userInfo: nil,
                                             repeats: false)

     }
 }


@objc func refresh() {

    self.myTable!.tableFooterView?.isHidden = true

}