【发布时间】:2019-03-23 13:14:36
【问题描述】:
当我的脚本要求服务器加载数据并接收到所需的数据时,一切顺利,但当它无法找到所需的数据时,我无法在其他方面做些什么。
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()
}
打印错误:无数据
PHP 代码有效
$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"}]';
}
【问题讨论】:
-
请详细说明“未找到数据:我无能为力”。脚本是否挂起/变得无响应?任何错误日志?如果是这样,请通知我们。
-
在
do {行之前插入print(String(data: data, encoding: .utf8)!)并检查你得到了什么。 -
脚本响应但无法执行不存在数据的指示
-
我设置了 print(String(data: data, encoding: .utf8)!) 输出 [{"error":"no Data"}]
标签: uitableview swift3 swift4